summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.ci/templates/build-msvc.yml2
-rw-r--r--.gitmodules3
-rw-r--r--CMakeLists.txt6
-rw-r--r--README.md4
-rw-r--r--dist/languages/ca.ts1135
-rw-r--r--dist/languages/cs.ts1089
-rw-r--r--dist/languages/da.ts1089
-rw-r--r--dist/languages/de.ts1231
-rw-r--r--dist/languages/el.ts6261
-rw-r--r--dist/languages/es.ts1153
-rw-r--r--dist/languages/fi.ts1087
-rw-r--r--dist/languages/fr.ts1093
-rw-r--r--dist/languages/id.ts1091
-rw-r--r--dist/languages/it.ts1091
-rw-r--r--dist/languages/ja_JP.ts1089
-rw-r--r--dist/languages/ko_KR.ts1091
-rw-r--r--dist/languages/nb.ts1752
-rw-r--r--dist/languages/nl.ts1087
-rw-r--r--dist/languages/pl.ts1091
-rw-r--r--dist/languages/pt_BR.ts1109
-rw-r--r--dist/languages/pt_PT.ts1107
-rw-r--r--dist/languages/ru_RU.ts1109
-rw-r--r--dist/languages/sv.ts1087
-rw-r--r--dist/languages/tr_TR.ts1095
-rw-r--r--dist/languages/vi.ts1087
-rw-r--r--dist/languages/vi_VN.ts1087
-rw-r--r--dist/languages/zh_CN.ts1101
-rw-r--r--dist/languages/zh_TW.ts1101
-rw-r--r--externals/CMakeLists.txt3
m---------externals/dynarmic0
m---------externals/soundtouch0
-rw-r--r--license.txt937
-rw-r--r--src/CMakeLists.txt8
-rw-r--r--src/audio_core/CMakeLists.txt3
-rw-r--r--src/audio_core/cubeb_sink.cpp25
-rw-r--r--src/audio_core/sdl2_sink.cpp4
-rw-r--r--src/audio_core/time_stretch.cpp68
-rw-r--r--src/audio_core/time_stretch.h34
-rw-r--r--src/common/atomic_ops.h95
-rw-r--r--src/common/bit_field.h1
-rw-r--r--src/common/dynamic_library.cpp1
-rw-r--r--src/common/fs/file.cpp1
-rw-r--r--src/common/fs/file.h2
-rw-r--r--src/common/fs/fs_types.h1
-rw-r--r--src/common/fs/fs_util.h1
-rw-r--r--src/common/hex_util.h1
-rw-r--r--src/common/host_memory.cpp6
-rw-r--r--src/common/intrusive_red_black_tree.h390
-rw-r--r--src/common/logging/backend.cpp2
-rw-r--r--src/common/logging/backend.h1
-rw-r--r--src/common/logging/filter.cpp2
-rw-r--r--src/common/logging/filter.h1
-rw-r--r--src/common/logging/text_formatter.cpp2
-rw-r--r--src/common/logging/text_formatter.h1
-rw-r--r--src/common/logging/types.h2
-rw-r--r--src/common/math_util.h50
-rw-r--r--src/common/memory_detect.cpp2
-rw-r--r--src/common/nvidia_flags.cpp1
-rw-r--r--src/common/page_table.h1
-rw-r--r--src/common/parent_of_member.h1
-rw-r--r--src/common/ring_buffer.h1
-rw-r--r--src/common/settings.h3
-rw-r--r--src/common/string_util.cpp2
-rw-r--r--src/common/telemetry.cpp1
-rw-r--r--src/common/telemetry.h1
-rw-r--r--src/common/thread.h2
-rw-r--r--src/common/threadsafe_queue.h4
-rw-r--r--src/common/tree.h625
-rw-r--r--src/common/uint128.h2
-rw-r--r--src/common/uuid.h1
-rw-r--r--src/common/virtual_buffer.h1
-rw-r--r--src/common/wall_clock.cpp2
-rw-r--r--src/common/x64/cpu_detect.cpp1
-rw-r--r--src/common/x64/native_clock.cpp61
-rw-r--r--src/common/x64/native_clock.h2
-rw-r--r--src/core/CMakeLists.txt44
-rw-r--r--src/core/arm/arm_interface.cpp141
-rw-r--r--src/core/arm/arm_interface.h3
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.cpp93
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.h4
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_64.cpp98
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_64.h4
-rw-r--r--src/core/arm/dynarmic/arm_exclusive_monitor.h2
-rw-r--r--src/core/arm/symbols.cpp190
-rw-r--r--src/core/arm/symbols.h27
-rw-r--r--src/core/core.cpp1
-rw-r--r--src/core/file_sys/directory.h1
-rw-r--r--src/core/file_sys/patch_manager.cpp66
-rw-r--r--src/core/file_sys/program_metadata.h2
-rw-r--r--src/core/file_sys/registered_cache.cpp6
-rw-r--r--src/core/frontend/applets/mii_edit.cpp18
-rw-r--r--src/core/frontend/applets/mii_edit.h23
-rw-r--r--src/core/hid/emulated_console.cpp17
-rw-r--r--src/core/hid/emulated_console.h1
-rw-r--r--src/core/hid/emulated_controller.cpp377
-rw-r--r--src/core/hid/emulated_controller.h3
-rw-r--r--src/core/hid/emulated_devices.cpp33
-rw-r--r--src/core/hid/emulated_devices.h1
-rw-r--r--src/core/hle/ipc_helpers.h2
-rw-r--r--src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp6
-rw-r--r--src/core/hle/kernel/hle_ipc.cpp16
-rw-r--r--src/core/hle/kernel/hle_ipc.h17
-rw-r--r--src/core/hle/kernel/init/init_slab_setup.cpp101
-rw-r--r--src/core/hle/kernel/init/init_slab_setup.h5
-rw-r--r--src/core/hle/kernel/k_address_arbiter.cpp6
-rw-r--r--src/core/hle/kernel/k_auto_object.h7
-rw-r--r--src/core/hle/kernel/k_class_token.h2
-rw-r--r--src/core/hle/kernel/k_code_memory.cpp15
-rw-r--r--src/core/hle/kernel/k_condition_variable.cpp3
-rw-r--r--src/core/hle/kernel/k_handle_table.cpp8
-rw-r--r--src/core/hle/kernel/k_handle_table.h34
-rw-r--r--src/core/hle/kernel/k_memory_layout.h6
-rw-r--r--src/core/hle/kernel/k_memory_manager.cpp1
-rw-r--r--src/core/hle/kernel/k_page_buffer.cpp19
-rw-r--r--src/core/hle/kernel/k_page_buffer.h28
-rw-r--r--src/core/hle/kernel/k_page_linked_list.h4
-rw-r--r--src/core/hle/kernel/k_page_table.cpp379
-rw-r--r--src/core/hle/kernel/k_page_table.h55
-rw-r--r--src/core/hle/kernel/k_port.cpp7
-rw-r--r--src/core/hle/kernel/k_process.cpp196
-rw-r--r--src/core/hle/kernel/k_process.h21
-rw-r--r--src/core/hle/kernel/k_scheduler.cpp1
-rw-r--r--src/core/hle/kernel/k_scheduler_lock.h3
-rw-r--r--src/core/hle/kernel/k_server_port.cpp6
-rw-r--r--src/core/hle/kernel/k_server_port.h8
-rw-r--r--src/core/hle/kernel/k_server_session.cpp18
-rw-r--r--src/core/hle/kernel/k_slab_heap.h230
-rw-r--r--src/core/hle/kernel/k_thread.cpp14
-rw-r--r--src/core/hle/kernel/k_thread.h9
-rw-r--r--src/core/hle/kernel/k_thread_local_page.cpp68
-rw-r--r--src/core/hle/kernel/k_thread_local_page.h111
-rw-r--r--src/core/hle/kernel/kernel.cpp148
-rw-r--r--src/core/hle/kernel/kernel.h43
-rw-r--r--src/core/hle/kernel/physical_core.cpp1
-rw-r--r--src/core/hle/kernel/service_thread.cpp5
-rw-r--r--src/core/hle/kernel/slab_helpers.h2
-rw-r--r--src/core/hle/kernel/svc.cpp16
-rw-r--r--src/core/hle/kernel/svc_types.h2
-rw-r--r--src/core/hle/kernel/time_manager.cpp4
-rw-r--r--src/core/hle/service/acc/acc.cpp1
-rw-r--r--src/core/hle/service/acc/profile_manager.h1
-rw-r--r--src/core/hle/service/am/am.cpp13
-rw-r--r--src/core/hle/service/am/am.h1
-rw-r--r--src/core/hle/service/am/applets/applet_mii_edit.cpp139
-rw-r--r--src/core/hle/service/am/applets/applet_mii_edit.h45
-rw-r--r--src/core/hle/service/am/applets/applet_mii_edit_types.h83
-rw-r--r--src/core/hle/service/am/applets/applet_software_keyboard.cpp474
-rw-r--r--src/core/hle/service/am/applets/applet_software_keyboard.h35
-rw-r--r--src/core/hle/service/am/applets/applet_software_keyboard_types.h72
-rw-r--r--src/core/hle/service/am/applets/applet_web_browser.cpp8
-rw-r--r--src/core/hle/service/am/applets/applets.cpp15
-rw-r--r--src/core/hle/service/am/applets/applets.h9
-rw-r--r--src/core/hle/service/audio/audout_u.cpp7
-rw-r--r--src/core/hle/service/audio/audren_u.cpp3
-rw-r--r--src/core/hle/service/filesystem/filesystem.cpp2
-rw-r--r--src/core/hle/service/filesystem/fsp_srv.cpp13
-rw-r--r--src/core/hle/service/hid/controllers/console_sixaxis.cpp1
-rw-r--r--src/core/hle/service/hid/controllers/console_sixaxis.h1
-rw-r--r--src/core/hle/service/hid/controllers/controller_base.h1
-rw-r--r--src/core/hle/service/hid/controllers/debug_pad.h3
-rw-r--r--src/core/hle/service/hid/controllers/keyboard.h4
-rw-r--r--src/core/hle/service/hid/controllers/mouse.h3
-rw-r--r--src/core/hle/service/hid/controllers/npad.cpp34
-rw-r--r--src/core/hle/service/hid/controllers/npad.h102
-rw-r--r--src/core/hle/service/hid/controllers/touchscreen.cpp1
-rw-r--r--src/core/hle/service/hid/controllers/touchscreen.h3
-rw-r--r--src/core/hle/service/hid/controllers/xpad.h2
-rw-r--r--src/core/hle/service/hid/hid.cpp4
-rw-r--r--src/core/hle/service/jit/jit.cpp332
-rw-r--r--src/core/hle/service/jit/jit.h20
-rw-r--r--src/core/hle/service/jit/jit_context.cpp424
-rw-r--r--src/core/hle/service/jit/jit_context.h65
-rw-r--r--src/core/hle/service/kernel_helpers.cpp11
-rw-r--r--src/core/hle/service/ldr/ldr.cpp31
-rw-r--r--src/core/hle/service/mii/mii_manager.cpp3
-rw-r--r--src/core/hle/service/mii/mii_manager.h303
-rw-r--r--src/core/hle/service/mii/raw_data.h2
-rw-r--r--src/core/hle/service/mii/types.h307
-rw-r--r--src/core/hle/service/nfp/nfp.cpp1
-rw-r--r--src/core/hle/service/nfp/nfp.h2
-rw-r--r--src/core/hle/service/nifm/nifm.cpp1
-rw-r--r--src/core/hle/service/ns/pdm_qry.cpp1
-rw-r--r--src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp10
-rw-r--r--src/core/hle/service/nvdrv/devices/nvdisp_disp0.h7
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp2
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h2
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp7
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_gpu.h11
-rw-r--r--src/core/hle/service/nvdrv/nvdata.h10
-rw-r--r--src/core/hle/service/nvdrv/nvdrv.h3
-rw-r--r--src/core/hle/service/nvdrv/nvdrv_interface.cpp14
-rw-r--r--src/core/hle/service/nvflinger/binder.h42
-rw-r--r--src/core/hle/service/nvflinger/buffer_item.h46
-rw-r--r--src/core/hle/service/nvflinger/buffer_item_consumer.cpp59
-rw-r--r--src/core/hle/service/nvflinger/buffer_item_consumer.h28
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue.cpp206
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue.h154
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue_consumer.cpp231
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue_consumer.h37
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue_core.cpp117
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue_core.h79
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue_defs.h21
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue_producer.cpp923
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue_producer.h83
-rw-r--r--src/core/hle/service/nvflinger/buffer_slot.h39
-rw-r--r--src/core/hle/service/nvflinger/buffer_transform_flags.h25
-rw-r--r--src/core/hle/service/nvflinger/consumer_base.cpp133
-rw-r--r--src/core/hle/service/nvflinger/consumer_base.h60
-rw-r--r--src/core/hle/service/nvflinger/consumer_listener.h26
-rw-r--r--src/core/hle/service/nvflinger/graphic_buffer_producer.cpp18
-rw-r--r--src/core/hle/service/nvflinger/graphic_buffer_producer.h76
-rw-r--r--src/core/hle/service/nvflinger/hos_binder_driver_server.cpp36
-rw-r--r--src/core/hle/service/nvflinger/hos_binder_driver_server.h37
-rw-r--r--src/core/hle/service/nvflinger/nvflinger.cpp85
-rw-r--r--src/core/hle/service/nvflinger/nvflinger.h26
-rw-r--r--src/core/hle/service/nvflinger/parcel.h172
-rw-r--r--src/core/hle/service/nvflinger/pixel_format.h21
-rw-r--r--src/core/hle/service/nvflinger/producer_listener.h16
-rw-r--r--src/core/hle/service/nvflinger/status.h28
-rw-r--r--src/core/hle/service/nvflinger/ui/fence.h32
-rw-r--r--src/core/hle/service/nvflinger/ui/graphic_buffer.h100
-rw-r--r--src/core/hle/service/nvflinger/window.h53
-rw-r--r--src/core/hle/service/service.cpp13
-rw-r--r--src/core/hle/service/service.h18
-rw-r--r--src/core/hle/service/sm/sm.cpp12
-rw-r--r--src/core/hle/service/sm/sm.h2
-rw-r--r--src/core/hle/service/sockets/bsd.cpp11
-rw-r--r--src/core/hle/service/sockets/sfdnsres.cpp205
-rw-r--r--src/core/hle/service/sockets/sfdnsres.h1
-rw-r--r--src/core/hle/service/sockets/sockets.h1
-rw-r--r--src/core/hle/service/vi/display/vi_display.cpp50
-rw-r--r--src/core/hle/service/vi/display/vi_display.h29
-rw-r--r--src/core/hle/service/vi/layer/vi_layer.cpp6
-rw-r--r--src/core/hle/service/vi/layer/vi_layer.h57
-rw-r--r--src/core/hle/service/vi/vi.cpp691
-rw-r--r--src/core/hle/service/vi/vi.h10
-rw-r--r--src/core/hle/service/vi/vi_m.cpp9
-rw-r--r--src/core/hle/service/vi/vi_m.h7
-rw-r--r--src/core/hle/service/vi/vi_s.cpp9
-rw-r--r--src/core/hle/service/vi/vi_s.h7
-rw-r--r--src/core/hle/service/vi/vi_u.cpp9
-rw-r--r--src/core/hle/service/vi/vi_u.h7
-rw-r--r--src/core/network/network.cpp4
-rw-r--r--src/core/network/sockets.h3
-rw-r--r--src/core/perf_stats.cpp10
-rw-r--r--src/core/reporter.cpp1
-rw-r--r--src/core/tools/freezer.cpp18
-rw-r--r--src/input_common/drivers/gc_adapter.h1
-rw-r--r--src/input_common/drivers/sdl_driver.cpp12
-rw-r--r--src/input_common/helpers/udp_protocol.h1
-rw-r--r--src/input_common/input_engine.cpp47
-rw-r--r--src/input_common/main.cpp1
-rw-r--r--src/shader_recompiler/backend/glasm/emit_glasm_convert.cpp2
-rw-r--r--src/shader_recompiler/backend/glasm/emit_glasm_floating_point.cpp2
-rw-r--r--src/shader_recompiler/backend/glasm/emit_glasm_memory.cpp2
-rw-r--r--src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp3
-rw-r--r--src/shader_recompiler/backend/glasm/glasm_emit_context.cpp2
-rw-r--r--src/shader_recompiler/backend/glasm/reg_alloc.cpp3
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_barriers.cpp1
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_context_get_set.cpp25
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_control_flow.cpp2
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp2
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_logical.cpp2
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_shared_memory.cpp2
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_special.cpp2
-rw-r--r--src/shader_recompiler/backend/glsl/emit_glsl_undefined.cpp2
-rw-r--r--src/shader_recompiler/backend/glsl/glsl_emit_context.cpp19
-rw-r--r--src/shader_recompiler/backend/glsl/glsl_emit_context.h1
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_atomic.cpp2
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_barriers.cpp2
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_bitwise_conversion.cpp1
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp2
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp61
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp1
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp1
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp1
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_image_atomic.cpp1
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_integer.cpp1
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_logical.cpp1
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_select.cpp1
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_shared_memory.cpp1
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_undefined.cpp1
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_warp.cpp1
-rw-r--r--src/shader_recompiler/backend/spirv/spirv_emit_context.cpp62
-rw-r--r--src/shader_recompiler/backend/spirv/spirv_emit_context.h9
-rw-r--r--src/shader_recompiler/exception.h1
-rw-r--r--src/shader_recompiler/frontend/ir/basic_block.cpp2
-rw-r--r--src/shader_recompiler/frontend/ir/condition.h1
-rw-r--r--src/shader_recompiler/frontend/ir/microinstruction.cpp5
-rw-r--r--src/shader_recompiler/frontend/ir/opcodes.cpp2
-rw-r--r--src/shader_recompiler/frontend/ir/opcodes.h1
-rw-r--r--src/shader_recompiler/frontend/ir/value.cpp1
-rw-r--r--src/shader_recompiler/frontend/ir/value.h4
-rw-r--r--src/shader_recompiler/frontend/maxwell/control_flow.h2
-rw-r--r--src/shader_recompiler/frontend/maxwell/decode.cpp1
-rw-r--r--src/shader_recompiler/frontend/maxwell/indirect_branch_table_track.h1
-rw-r--r--src/shader_recompiler/frontend/maxwell/instruction.h1
-rw-r--r--src/shader_recompiler/frontend/maxwell/location.h3
-rw-r--r--src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp2
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/attribute_memory_to_physical.cpp1
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/barrier_operations.cpp2
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/common_funcs.h1
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/exit_program.cpp5
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_multi_function.cpp1
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_helper.h2
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_set.cpp1
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_set_predicate.cpp1
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/load_constant.cpp14
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/load_store_attribute.cpp1
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/load_store_memory.cpp1
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/move_register.cpp1
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/surface_atomic_operations.cpp3
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/texture_fetch_swizzled.cpp2
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather.cpp2
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather_swizzled.cpp2
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/texture_gradient.cpp2
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/texture_load.cpp4
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/texture_mipmap_level.cpp4
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/texture_query.cpp1
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate/impl/warp_shuffle.cpp2
-rw-r--r--src/shader_recompiler/frontend/maxwell/translate_program.h5
-rw-r--r--src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp81
-rw-r--r--src/shader_recompiler/ir_opt/constant_propagation_pass.cpp1
-rw-r--r--src/shader_recompiler/ir_opt/dead_code_elimination_pass.cpp98
-rw-r--r--src/shader_recompiler/ir_opt/global_memory_to_storage_buffer_pass.cpp3
-rw-r--r--src/shader_recompiler/ir_opt/lower_fp16_to_fp32.cpp3
-rw-r--r--src/shader_recompiler/ir_opt/passes.h3
-rw-r--r--src/shader_recompiler/ir_opt/rescaling_pass.cpp1
-rw-r--r--src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp1
-rw-r--r--src/shader_recompiler/program_header.h5
-rw-r--r--src/shader_recompiler/runtime_info.h1
-rw-r--r--src/shader_recompiler/shader_info.h3
-rw-r--r--src/video_core/buffer_cache/buffer_base.h3
-rw-r--r--src/video_core/buffer_cache/buffer_cache.h56
-rw-r--r--src/video_core/cdma_pusher.cpp2
-rw-r--r--src/video_core/cdma_pusher.h1
-rw-r--r--src/video_core/command_classes/codecs/codec.cpp36
-rw-r--r--src/video_core/command_classes/codecs/codec.h2
-rw-r--r--src/video_core/command_classes/codecs/vp8.cpp1
-rw-r--r--src/video_core/command_classes/codecs/vp9_types.h1
-rw-r--r--src/video_core/command_classes/host1x.h2
-rw-r--r--src/video_core/dma_pusher.cpp1
-rw-r--r--src/video_core/engines/fermi_2d.h1
-rw-r--r--src/video_core/engines/kepler_compute.cpp1
-rw-r--r--src/video_core/engines/kepler_compute.h1
-rw-r--r--src/video_core/engines/kepler_memory.cpp2
-rw-r--r--src/video_core/engines/kepler_memory.h2
-rw-r--r--src/video_core/engines/maxwell_3d.cpp67
-rw-r--r--src/video_core/engines/maxwell_3d.h16
-rw-r--r--src/video_core/engines/maxwell_dma.h2
-rw-r--r--src/video_core/fence_manager.h2
-rw-r--r--src/video_core/framebuffer_config.h29
-rw-r--r--src/video_core/gpu.cpp6
-rw-r--r--src/video_core/gpu.h1
-rw-r--r--src/video_core/gpu_thread.cpp2
-rw-r--r--src/video_core/host_shaders/CMakeLists.txt2
-rw-r--r--src/video_core/host_shaders/convert_s8d24_to_abgr8.frag23
-rw-r--r--src/video_core/host_shaders/opengl_convert_s8d24.comp18
-rw-r--r--src/video_core/memory_manager.cpp1
-rw-r--r--src/video_core/query_cache.h2
-rw-r--r--src/video_core/renderer_base.cpp1
-rw-r--r--src/video_core/renderer_opengl/gl_buffer_cache.cpp14
-rw-r--r--src/video_core/renderer_opengl/gl_buffer_cache.h14
-rw-r--r--src/video_core/renderer_opengl/gl_compute_pipeline.h1
-rw-r--r--src/video_core/renderer_opengl/gl_device.cpp13
-rw-r--r--src/video_core/renderer_opengl/gl_device.h7
-rw-r--r--src/video_core/renderer_opengl/gl_graphics_pipeline.cpp2
-rw-r--r--src/video_core/renderer_opengl/gl_graphics_pipeline.h1
-rw-r--r--src/video_core/renderer_opengl/gl_query_cache.cpp3
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp19
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.h10
-rw-r--r--src/video_core/renderer_opengl/gl_resource_manager.cpp2
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.cpp7
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.h5
-rw-r--r--src/video_core/renderer_opengl/gl_shader_util.cpp1
-rw-r--r--src/video_core/renderer_opengl/gl_shader_util.h4
-rw-r--r--src/video_core/renderer_opengl/gl_state_tracker.h1
-rw-r--r--src/video_core/renderer_opengl/gl_stream_buffer.h1
-rw-r--r--src/video_core/renderer_opengl/gl_texture_cache.cpp31
-rw-r--r--src/video_core/renderer_opengl/gl_texture_cache.h16
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.cpp18
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.h8
-rw-r--r--src/video_core/renderer_opengl/util_shaders.cpp24
-rw-r--r--src/video_core/renderer_opengl/util_shaders.h3
-rw-r--r--src/video_core/renderer_vulkan/blit_image.cpp16
-rw-r--r--src/video_core/renderer_vulkan/blit_image.h6
-rw-r--r--src/video_core/renderer_vulkan/fixed_pipeline_state.cpp3
-rw-r--r--src/video_core/renderer_vulkan/maxwell_to_vk.h1
-rw-r--r--src/video_core/renderer_vulkan/pipeline_helper.h2
-rw-r--r--src/video_core/renderer_vulkan/pipeline_statistics.cpp4
-rw-r--r--src/video_core/renderer_vulkan/renderer_vulkan.cpp3
-rw-r--r--src/video_core/renderer_vulkan/renderer_vulkan.h1
-rw-r--r--src/video_core/renderer_vulkan/vk_blit_screen.cpp17
-rw-r--r--src/video_core/renderer_vulkan/vk_buffer_cache.cpp12
-rw-r--r--src/video_core/renderer_vulkan/vk_buffer_cache.h6
-rw-r--r--src/video_core/renderer_vulkan/vk_compute_pass.cpp3
-rw-r--r--src/video_core/renderer_vulkan/vk_compute_pipeline.cpp2
-rw-r--r--src/video_core/renderer_vulkan/vk_compute_pipeline.h1
-rw-r--r--src/video_core/renderer_vulkan/vk_fence_manager.cpp1
-rw-r--r--src/video_core/renderer_vulkan/vk_fence_manager.h1
-rw-r--r--src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp2
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp6
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.h3
-rw-r--r--src/video_core/renderer_vulkan/vk_rasterizer.cpp3
-rw-r--r--src/video_core/renderer_vulkan/vk_rasterizer.h6
-rw-r--r--src/video_core/renderer_vulkan/vk_render_pass_cache.cpp2
-rw-r--r--src/video_core/renderer_vulkan/vk_scheduler.cpp7
-rw-r--r--src/video_core/renderer_vulkan/vk_scheduler.h1
-rw-r--r--src/video_core/renderer_vulkan/vk_shader_util.cpp2
-rw-r--r--src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp2
-rw-r--r--src/video_core/renderer_vulkan/vk_state_tracker.cpp1
-rw-r--r--src/video_core/renderer_vulkan/vk_state_tracker.h1
-rw-r--r--src/video_core/renderer_vulkan/vk_swapchain.cpp2
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.cpp23
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.h4
-rw-r--r--src/video_core/renderer_vulkan/vk_update_descriptor.cpp1
-rw-r--r--src/video_core/renderer_vulkan/vk_update_descriptor.h1
-rw-r--r--src/video_core/shader_cache.cpp2
-rw-r--r--src/video_core/shader_environment.cpp1
-rw-r--r--src/video_core/shader_notify.cpp1
-rw-r--r--src/video_core/shader_notify.h1
-rw-r--r--src/video_core/surface.cpp8
-rw-r--r--src/video_core/surface.h2
-rw-r--r--src/video_core/texture_cache/descriptor_table.h1
-rw-r--r--src/video_core/texture_cache/image_base.h7
-rw-r--r--src/video_core/texture_cache/render_targets.h1
-rw-r--r--src/video_core/texture_cache/slot_vector.h2
-rw-r--r--src/video_core/texture_cache/texture_cache.h82
-rw-r--r--src/video_core/texture_cache/texture_cache_base.h8
-rw-r--r--src/video_core/texture_cache/util.h2
-rw-r--r--src/video_core/textures/astc.cpp1
-rw-r--r--src/video_core/textures/astc.h3
-rw-r--r--src/video_core/textures/decoders.cpp2
-rw-r--r--src/video_core/textures/texture.cpp1
-rw-r--r--src/video_core/vulkan_common/nsight_aftermath_tracker.h14
-rw-r--r--src/video_core/vulkan_common/vulkan_device.cpp59
-rw-r--r--src/video_core/vulkan_common/vulkan_device.h12
-rw-r--r--src/video_core/vulkan_common/vulkan_instance.cpp2
-rw-r--r--src/video_core/vulkan_common/vulkan_library.cpp1
-rw-r--r--src/video_core/vulkan_common/vulkan_memory_allocator.cpp2
-rw-r--r--src/video_core/vulkan_common/vulkan_memory_allocator.h1
-rw-r--r--src/video_core/vulkan_common/vulkan_wrapper.cpp15
-rw-r--r--src/video_core/vulkan_common/vulkan_wrapper.h5
-rw-r--r--src/web_service/web_backend.cpp5
-rw-r--r--src/yuzu/CMakeLists.txt2
-rw-r--r--src/yuzu/applets/qt_controller.cpp1
-rw-r--r--src/yuzu/applets/qt_profile_select.cpp1
-rw-r--r--src/yuzu/applets/qt_profile_select.h2
-rw-r--r--src/yuzu/applets/qt_web_browser.cpp8
-rw-r--r--src/yuzu/applets/qt_web_browser.h1
-rw-r--r--src/yuzu/bootmanager.cpp3
-rw-r--r--src/yuzu/bootmanager.h1
-rw-r--r--src/yuzu/configuration/config.cpp2
-rw-r--r--src/yuzu/configuration/configuration_shared.cpp1
-rw-r--r--src/yuzu/configuration/configuration_shared.h1
-rw-r--r--src/yuzu/configuration/configure_audio.cpp2
-rw-r--r--src/yuzu/configuration/configure_cpu.cpp4
-rw-r--r--src/yuzu/configuration/configure_cpu.h1
-rw-r--r--src/yuzu/configuration/configure_cpu.ui5
-rw-r--r--src/yuzu/configuration/configure_cpu_debug.cpp4
-rw-r--r--src/yuzu/configuration/configure_debug.cpp8
-rw-r--r--src/yuzu/configuration/configure_debug.ui93
-rw-r--r--src/yuzu/configuration/configure_dialog.cpp7
-rw-r--r--src/yuzu/configuration/configure_general.cpp3
-rw-r--r--src/yuzu/configuration/configure_graphics.cpp1
-rw-r--r--src/yuzu/configuration/configure_hotkeys.cpp7
-rw-r--r--src/yuzu/configuration/configure_input.cpp4
-rw-r--r--src/yuzu/configuration/configure_input_player.cpp2
-rw-r--r--src/yuzu/configuration/configure_motion_touch.cpp5
-rw-r--r--src/yuzu/configuration/configure_motion_touch.h1
-rw-r--r--src/yuzu/configuration/configure_network.cpp1
-rw-r--r--src/yuzu/configuration/configure_network.h1
-rw-r--r--src/yuzu/configuration/configure_per_game.cpp6
-rw-r--r--src/yuzu/configuration/configure_per_game.h1
-rw-r--r--src/yuzu/configuration/configure_per_game_addons.cpp7
-rw-r--r--src/yuzu/configuration/configure_profile_manager.cpp2
-rw-r--r--src/yuzu/configuration/configure_system.cpp2
-rw-r--r--src/yuzu/configuration/configure_system.h1
-rw-r--r--src/yuzu/configuration/configure_tas.h2
-rw-r--r--src/yuzu/configuration/configure_touch_from_button.cpp1
-rw-r--r--src/yuzu/configuration/configure_vibration.cpp6
-rw-r--r--src/yuzu/configuration/input_profiles.h1
-rw-r--r--src/yuzu/debugger/wait_tree.cpp2
-rw-r--r--src/yuzu/debugger/wait_tree.h1
-rw-r--r--src/yuzu/game_list.cpp2
-rw-r--r--src/yuzu/game_list.h5
-rw-r--r--src/yuzu/game_list_p.h1
-rw-r--r--src/yuzu/game_list_worker.cpp1
-rw-r--r--src/yuzu/game_list_worker.h4
-rw-r--r--src/yuzu/hotkeys.cpp1
-rw-r--r--src/yuzu/install_dialog.cpp1
-rw-r--r--src/yuzu/loading_screen.cpp7
-rw-r--r--src/yuzu/main.cpp30
-rw-r--r--src/yuzu/main.h5
-rw-r--r--src/yuzu/uisettings.h1
-rw-r--r--src/yuzu/util/controller_navigation.cpp2
-rw-r--r--src/yuzu/util/overlay_dialog.h1
-rw-r--r--src/yuzu_cmd/CMakeLists.txt2
-rw-r--r--src/yuzu_cmd/config.cpp11
-rw-r--r--src/yuzu_cmd/config.h5
-rw-r--r--src/yuzu_cmd/default_ini.h12
-rw-r--r--src/yuzu_cmd/emu_window/emu_window_sdl2.h1
-rw-r--r--src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp1
-rw-r--r--src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp2
-rw-r--r--src/yuzu_cmd/yuzu.cpp27
505 files changed, 29141 insertions, 16943 deletions
diff --git a/.ci/templates/build-msvc.yml b/.ci/templates/build-msvc.yml
index f6e7557b2..e5f8ea91e 100644
--- a/.ci/templates/build-msvc.yml
+++ b/.ci/templates/build-msvc.yml
@@ -8,7 +8,7 @@ steps:
displayName: 'Install vulkan-sdk'
- script: python -m pip install --upgrade pip conan
displayName: 'Install conan'
-- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 16 2019" -A x64 -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release .. && cd ..
+- script: refreshenv && mkdir build && cd build && cmake -G "Visual Studio 16 2019" -A x64 -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DYUZU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release .. && cd ..
displayName: 'Configure CMake'
- task: MSBuild@1
displayName: 'Build'
diff --git a/.gitmodules b/.gitmodules
index a9cf9a24a..dc92d0a4b 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -7,9 +7,6 @@
[submodule "dynarmic"]
path = externals/dynarmic
url = https://github.com/MerryMage/dynarmic.git
-[submodule "soundtouch"]
- path = externals/soundtouch
- url = https://github.com/citra-emu/ext-soundtouch.git
[submodule "libressl"]
path = externals/libressl
url = https://github.com/citra-emu/ext-libressl-portable.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4bf55d664..11a459813 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -363,7 +363,11 @@ if(ENABLE_QT)
set(YUZU_QT_NO_CMAKE_SYSTEM_PATH "NO_CMAKE_SYSTEM_PATH")
endif()
- find_package(Qt5 ${QT_VERSION} REQUIRED COMPONENTS Widgets ${QT_PREFIX_HINT} ${YUZU_QT_NO_CMAKE_SYSTEM_PATH})
+ if ((${CMAKE_SYSTEM_NAME} STREQUAL "Linux") AND YUZU_USE_BUNDLED_QT)
+ find_package(Qt5 ${QT_VERSION} REQUIRED COMPONENTS Widgets DBus ${QT_PREFIX_HINT} ${YUZU_QT_NO_CMAKE_SYSTEM_PATH})
+ else()
+ find_package(Qt5 ${QT_VERSION} REQUIRED COMPONENTS Widgets ${QT_PREFIX_HINT} ${YUZU_QT_NO_CMAKE_SYSTEM_PATH})
+ endif()
if (YUZU_USE_QT_WEB_ENGINE)
find_package(Qt5 COMPONENTS WebEngineCore WebEngineWidgets)
endif()
diff --git a/README.md b/README.md
index c09d49ca4..139eb8599 100644
--- a/README.md
+++ b/README.md
@@ -77,6 +77,6 @@ If you wish to support us a different way, please join our [Discord](https://dis
## License
-yuzu is licensed under the GPLv2 (or any later version). Refer to the [license.txt](https://github.com/yuzu-emu/yuzu/blob/master/license.txt) file.
+yuzu is licensed under the GPLv3 (or any later version). Refer to the [license.txt](https://github.com/yuzu-emu/yuzu/blob/master/license.txt) file.
-The [Skyline-Emulator Team](https://github.com/skyline-emu/skyline) is exempt from GPLv2 for the contributions from all these contributors [FernandoS27](https://github.com/FernandoS27), [lioncash](https://github.com/lioncash), [bunnei](https://github.com/bunnei), [ReinUsesLisp](https://github.com/ReinUsesLisp), [Morph1984](https://github.com/Morph1984), [ogniK5377](https://github.com/ogniK5377), [german77](https://github.com/german77), [ameerj](https://github.com/ameerj), [Kelebek1](https://github.com/Kelebek1) and [lat9nq](https://github.com/lat9nq). They may only use the code from these contributors under Mozilla Public License, version 2.0.
+The [Skyline-Emulator Team](https://github.com/skyline-emu/skyline) is exempt from GPLv3 for the contributions from all these contributors [FernandoS27](https://github.com/FernandoS27), [lioncash](https://github.com/lioncash), [bunnei](https://github.com/bunnei), [ReinUsesLisp](https://github.com/ReinUsesLisp), [Morph1984](https://github.com/Morph1984), [ogniK5377](https://github.com/ogniK5377), [german77](https://github.com/german77), [ameerj](https://github.com/ameerj), [Kelebek1](https://github.com/Kelebek1) and [lat9nq](https://github.com/lat9nq). They may only use the code from these contributors under Mozilla Public License, version 2.0.
diff --git a/dist/languages/ca.ts b/dist/languages/ca.ts
index 76b897b1c..76d2de8a8 100644
--- a/dist/languages/ca.ts
+++ b/dist/languages/ca.ts
@@ -30,7 +30,7 @@ p, li { white-space: pre-wrap; }
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:12pt;">yuzu is an experimental open-source emulator for the Nintendo Switch licensed under GPLv2.0.</span></p>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p>
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;This software should not be used to play games you have not legally obtained.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;! DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li {white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
@@ -46,38 +46,38 @@ p, li {white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/aboutdialog.ui" line="134"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; is a trademark of Nintendo. yuzu is not affiliated with Nintendo in any way.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp; quot; Nintendo Switch&amp; quot; és una marca registrada de Nintendo. yuzu no està afiliat a Nintendo de cap manera.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; és una marca registrada de Nintendo. yuzu no està afiliat a Nintendo de cap manera.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
</context>
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Comunicant-se amb el servidor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Cancel·la</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Premi la cantonada superior esquerra&lt;br&gt;del seu panell tàctil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Ara premi la cantonada inferior dreta &lt;br&gt;del seu panell tàctil. </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Configuració completada!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>D&apos;acord</translation>
</message>
@@ -230,7 +230,7 @@ p, li {white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -350,7 +350,7 @@ p, li {white-space: pre-wrap; }
&lt;div&gt;This option improves speed by eliminating a safety check before every memory read/write in guest. Disabling it may allow a game to read/write the emulator's memory.&lt;/div&gt;
</source>
<translation>
- &lt;div&gt;Aquesta opció millora la velocitat eliminant una comprovació de seguretat abans de cada lectura/escriptura de memòria del amfitrió. Desactivar-lo pot permetre que un joc llegeixi/escrigui la memòria de l&apos;emulador.&lt;/div&gt;
+ &lt;div&gt;Aquesta opció millora la velocitat eliminant una comprovació de seguretat abans de cada lectura/escriptura de memòria de l&apos;hoste. Desactivar-lo pot permetre que un joc llegeixi/escrigui la memòria de l&apos;emulador.&lt;/div&gt;
</translation>
</message>
<message>
@@ -359,7 +359,21 @@ p, li {white-space: pre-wrap; }
<translation>Desactiva les comprovacions d&apos;espai d&apos;adreces</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Aquesta opció millora la velocitat basant-se només en les semàntiques de cmpxchg per assegurar la seguretat de les instruccions d&apos;accés exclusiu. Tingui en compte que això podria ocasionar bloquejos i altres situacions de competició.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation>Ignorar monitorització global</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>La configuració de la CPU només està disponible quan el joc no s&apos;està executant.</translation>
</message>
@@ -394,7 +408,7 @@ p, li {white-space: pre-wrap; }
&lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all memory accesses to go through the Memory::Read/Memory::Write functions.&lt;/div&gt;
</source>
<translation>
- &lt;div style=&quot;white-space: nowrap&quot;&gt;Aquesta optimització accelera els accessos a la memòria del programa amfitrió.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Aquesta optimització accelera els accessos a la memòria del programa hoste.&lt;/div&gt;
&lt;div style=&quot;white-space: nowrap&quot;&gt;Activant-la col·loca en fila els accessos a PageTable::pointers al codi emès.&lt;/div&gt;
&lt;div style=&quot;white-space: nowrap&quot;&gt;Desactivant-la força tots els accessos a la memòria a passar a través de les funcions Memory::Read/Memory::Write.&lt;/div&gt;
</translation>
@@ -512,18 +526,52 @@ p, li {white-space: pre-wrap; }
&lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all memory accesses to use Software MMU Emulation.&lt;/div&gt;
</source>
<translation>
- &lt;div style=&quot;white-space: nowrap&quot;&gt;Aquesta optimització accelera els accessos a la memòria del programa amfitrió.&lt;/div&gt;
- &lt;div style=&quot;white-space: nowrap&quot;&gt;Activar-la fa que les lectures/escriptures de la memòria del amfitrió es facin directament a la memòria i facin ús de la MMU de l&apos;amfitrió.&lt;/div&gt;
- &lt;div style=&quot;white-space: nowrap&quot;&gt;Desactivar això obliga a tots els accessos de memòria a utilitzar l&apos;Emulació de Programari MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Aquesta optimització accelera els accessos a la memòria del programa hoste.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Activar-la fa que les lectures/escriptures de la memòria de l&apos;hoste es facin directament a la memòria i facin ús de la MMU de l&apos;amfitrió.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Desactivar això obliga a tots els accessos de memòria a utilitzar l&apos;Emulació MMU per Software.&lt;/div&gt;
</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>Activar l&apos;emulació MMU de l&apos;amfitrió </translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation>Activar Emulació MMU a través de l&apos;amfitrió (Instruccions de memòria general)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Aquesta optimizació augmenta la velocitat dels accessos a la memòria exclusiva per part del programa hoste.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Activar-la provoca que les lectures/escriptures exclusives de la memòria per part de l&apos;hoste puguin ser realitzades directament a la memòria i facin ús del MMU de l&apos;amfitrió.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Desactivar això força a tots els accessos a la memòria exclusiva a fer servir l&apos;Emulació de MMI per Software.&lt;/div&gt;
+ </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation>Habilitar Emulació MMU a través de l&apos;amfitrió (Instruccions de memòria exclusiva)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Aquesta optimizació augmenta la velocitat dels accessos a la memòria exclusiva per part del programa hoste.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Activar-la redueix la sobrecàrrega de les falles de fastmem en l&apos;accés a la memòria exclusiva.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation>Habilitar recompilació de les instruccions de memòria exclusiva</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>La configuració de la CPU només està disponible quan el joc no s&apos;està executant.</translation>
</message>
@@ -681,7 +729,12 @@ p, li {white-space: pre-wrap; }
<translation>Activar tots els tipus de controladors</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation>Desactivar el Web Applet**</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Això es restablirà automàticament quan es tanqui yuzu.</translation>
</message>
@@ -731,78 +784,78 @@ p, li {white-space: pre-wrap; }
<translation>Configuració de yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Àudio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Depuració</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Sistema de fitxers</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>General</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Gràfics</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>GràficsAvançat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Tecles d&apos;accés ràpid</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Controls</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Perfils</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Xarxa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Llista de jocs</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1004,7 +1057,7 @@ p, li {white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="148"/>
<source>Extended memory layout (6GB DRAM)</source>
- <translation type="unfinished"/>
+ <translation>Interfície de memòria ampliada (6GB DRAM)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="155"/>
@@ -1024,7 +1077,7 @@ p, li {white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="176"/>
<source>Mute audio when in background</source>
- <translation type="unfinished"/>
+ <translation>Silenciar l&apos;àudio quan estigui en segon plà</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="183"/>
@@ -1037,12 +1090,12 @@ p, li {white-space: pre-wrap; }
<translation>Reiniciar tots els paràmetres</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Això restablirà tota la configuració i eliminarà totes les configuracions dels jocs. No eliminarà ni els directoris de jocs, ni els perfils, ni els perfils dels controladors. Procedir?</translation>
</message>
@@ -1271,7 +1324,7 @@ p, li {white-space: pre-wrap; }
<translation>Color de fons:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly Shaders, només NVIDIA)</translation>
</message>
@@ -1839,7 +1892,7 @@ p, li {white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Palanca esquerra</translation>
</message>
@@ -1933,14 +1986,14 @@ p, li {white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1959,7 +2012,7 @@ p, li {white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Més</translation>
</message>
@@ -1972,15 +2025,15 @@ p, li {white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2037,230 +2090,230 @@ p, li {white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Palanca dreta</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Esborrar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[no establert]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Botó commutador</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>Botó d&apos;inversió</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Invertir eixos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>Configurar llindar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Esculli un valor entre 0% i 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation>Configurar llindar giroscopi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Configuració de palanca analògica</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Després de prémer D&apos;acord, primer moveu el joystick horitzontalment i després verticalment.
Per invertir els eixos, primer moveu el joystick verticalment i després horitzontalment.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
- <translation type="unfinished"/>
+ <translation>Centrar eixos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Zona morta: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Rang del modificador: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Controlador Pro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Joycons duals</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Joycon esquerra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Joycon dret</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Portàtil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Controlador de GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>Controlador NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>Controlador SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>Controlador N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Inici / Pausa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Palanca de control</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Sacseja!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[esperant]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Nou perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Introdueixi un nom de perfil:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Crear perfil d&apos;entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>El nom de perfil introduït no és vàlid!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Error al crear el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Eliminar perfil d&apos;entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Error al eliminar el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Carregar perfil d&apos;entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Error al carregar el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Guardar perfil d&apos;entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Error al guardar el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
@@ -2308,7 +2361,7 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Configuració</translation>
</message>
@@ -2344,7 +2397,7 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Provar</translation>
</message>
@@ -2359,82 +2412,82 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
<translation>Eliminar servidor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Més Informació&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>El número de port té caràcters invàlids</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>El port ha d&apos;estar entre el rang 0 i 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>l&apos;Adreça IP no és vàlida</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Aquest servidor UDP ja existeix</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>No és possible afegir més de 8 servidors</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Provant</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Configurant</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Prova exitosa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>S&apos;han rebut dades des del servidor correctament.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Prova fallida</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>No s&apos;han pogut rebre dades vàlides des del servidor.&lt;br&gt;Si us plau, verifiqui que el servidor està configurat correctament i que la direcció i el port són correctes. </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>La prova del UDP o la configuració de la calibració està en curs.&lt;br&gt;Si us plau, esperi a que acabi el procés.</translation>
</message>
@@ -2462,7 +2515,7 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
<translation>Interfície de xarxa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Cap</translation>
</message>
@@ -2515,47 +2568,47 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
<translation>Desenvolupador</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Complements</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>General</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Gràfics</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Gràfics avanç.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Àudio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Propietats</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Utilitzar configuració global (%1)</translation>
</message>
@@ -2573,12 +2626,12 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
<translation>Complements</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Nom del pegat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Versió</translation>
</message>
@@ -2636,7 +2689,7 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
<translation>La gestió de perfils només està disponible quan el joc no s&apos;està executant.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2644,92 +2697,92 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Introdueixi el nom d&apos;usuari</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Usuaris</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Introdueixi un nom d&apos;usuari per al nou usuari:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Introdueixi un nou nom d&apos;usuari:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Confirmar eliminació</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Està a punt d&apos;eliminar un usuari amb el nom &quot;%1&quot;. Està segur?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Seleccioni una imatge d&apos;usuari</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Imatges JPEG (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Error al eliminar la imatge</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Error al intentar sobreescriure la imatge anterior a: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Error al eliminar el fitxer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>No es pot eliminar el fitxer existent: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Error al crear el directori d&apos;imatges de l&apos;usuari</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>No es pot crear el directori %1 per emmagatzemar imatges d’usuari.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Error al copiar la imatge de l&apos;usuari</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>No es pot copiar la imatge de %1 a %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Error al redimensionar la imatge d&apos;usuari</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>No es pot redimensionar la imatge</translation>
</message>
@@ -3173,17 +3226,17 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
<translation>Els paràmetres del sistema només estan disponibles quan el joc no s&apos;està executant.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Això reemplaçarà la seva Switch virtual actual amb una nova. La seva Switch virtual actual no serà recuperable. Això podria tenir efectes inesperats en els jocs. Això pot fallar si fa servir una partida guardada amb una configuració desactualitzada. Continuar?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Avís</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>ID de la consola: 0x%1</translation>
</message>
@@ -3299,54 +3352,54 @@ Arrossegui els punts per a canviar la posició, o faci doble clic a les cel·les
<translation>Esborrar punt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Botó</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Nou perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Introdueixi el nom per al nou perfil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Esborrar perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Esborrar perfil %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Renombrar perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Nou nom:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[pressioni una tecla]</translation>
</message>
@@ -3562,7 +3615,7 @@ Arrossegui els punts per a canviar la posició, o faci doble clic a les cel·les
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="23"/>
<source>Press any controller button to vibrate the controller.</source>
- <translation type="unfinished"/>
+ <translation>Presioni qualsevol botó per a vibrar el controlador.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="30"/>
@@ -3784,481 +3837,483 @@ Arrossegui els punts per a canviar la posició, o faci doble clic a les cel·les
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Es recullen dades anònimes&lt;/a&gt; per ajudar a millorar yuzu. &lt;br/&gt;&lt;br/&gt;Desitja compartir les seves dades d&apos;ús amb nosaltres?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetria</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Carregant Web applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
- <translation>Desactivar el web applet</translation>
+ <translation>Desactivar el Web Applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>Desactivar la web applet causarà que aquesta no es mostri més durant la resta de la sessió. Això pot portar a comportaments imprevistos i només hauria de ser utilitzat amb Super Mario 3D All-Stars. Està segur de voler desactivar la web applet?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation>Desactivar l&apos;Applet Web pot provocar comportaments indefinits i només hauria d&apos;utilitzar-se amb Super Mario 3D All-Stars. Estàs segur de que vols desactivar l&apos;Applet Web?
+(Això pot ser reactivat als paràmetres Debug.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>La quantitat de shaders que s&apos;estan compilant actualment</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>El multiplicador d&apos;escala de resolució seleccionat actualment.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Velocitat d&apos;emulació actual. Valors superiors o inferiors a 100% indiquen que l&apos;emulació s&apos;està executant més ràpidament o més lentament que a la Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Quants fotogrames per segon està mostrant el joc actualment. Això variarà d&apos;un joc a un altre i d&apos;una escena a una altra.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Temps que costa emular un fotograma de la Switch, sense tenir en compte la limitació de fotogrames o la sincronització vertical. Per a una emulació òptima, aquest valor hauria de ser com a màxim de 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>ACOBLAT</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Esborrar arxius recents</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Continuar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Pausar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation>yuzu està executant un joc</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Advertència format del joc desfasat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Està utilitzant el format de directori de ROM deconstruït per a aquest joc, que és un format desactualitzat que ha sigut reemplaçat per altres, com NCA, NAX, XCI o NSP. Els directoris de ROM deconstruïts careixen d&apos;icones, metadades i suport d&apos;actualitzacions.&lt;br&gt;&lt;br&gt;Per a obtenir una explicació dels diversos formats de Switch que suporta yuzu,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;faci una ullada a la nostra wiki&lt;/a&gt;. Aquest missatge no es tornarà a mostrar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Error carregant la ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>El format de la ROM no està suportat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>S&apos;ha produït un error inicialitzant el nucli de vídeo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu ha trobat un error mentre executava el nucli de vídeo. Això sol ser causat per controladors de la GPU obsolets, inclosos els integrats. Si us plau, consulti el registre per a més detalls. Per obtenir més informació sobre com accedir al registre, consulti la següent pàgina: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Com carregar el fitxer de registre&lt;/a&gt;. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Error al carregar la ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Si us plau, segueixi &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guia d&apos;inici de yuzu&lt;/a&gt; per a bolcar de nou els seus fitxers.&lt;br&gt;Pot consultar la wiki de yuzu wiki&lt;/a&gt; o el Discord de yuzu&lt;/a&gt; per obtenir ajuda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>S&apos;ha produït un error desconegut. Si us plau, consulti el registre per a més detalls.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Dades de partides guardades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Dades de mods</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Error obrint la carpeta %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>La carpeta no existeix!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Error obrint la cache transferible de shaders</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>No s&apos;ha pogut crear el directori de la cache dels shaders per aquest títol.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Continguts</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Actualització</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Eliminar entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Eliminar el joc instal·lat %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>S&apos;ha eliminat correctament</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>S&apos;ha eliminat correctament el joc base instal·lat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Error eliminant %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>El joc base no està instal·lat a la NAND i no pot ser eliminat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>S&apos;ha eliminat correctament l&apos;actualització instal·lada.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>No hi ha cap actualització instal·lada per aquest títol.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>No hi ha cap DLC instal·lat per aquest títol.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>S&apos;ha eliminat correctament %1 DLC instal·lat/s.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Desitja eliminar la cache transferible de shaders d&apos;OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Desitja eliminar la cache transferible de shaders de Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Desitja eliminar totes les caches transferibles de shaders?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Desitja eliminar la configuració personalitzada del joc?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Eliminar arxiu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Error eliminant la cache transferible de shaders</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>No existeix una cache de shaders per aquest títol.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>S&apos;ha eliminat correctament la cache transferible de shaders.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>No s&apos;ha pogut eliminar la cache transferible de shaders.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Error al eliminar les caches de shaders transferibles</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Caches de shaders transferibles eliminades correctament.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>No s&apos;ha pogut eliminar el directori de caches de shaders transferibles.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Error eliminant la configuració personalitzada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>No existeix una configuració personalitzada per aquest joc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>S&apos;ha eliminat correctament la configuració personalitzada del joc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>No s&apos;ha pogut eliminar la configuració personalitzada del joc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>La extracció de RomFS ha fallat!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>S&apos;ha produït un error copiant els arxius RomFS o l&apos;usuari ha cancel·lat la operació.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Completa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Esquelet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Seleccioni el mode de bolcat de RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Si us plau, seleccioni la forma en que desitja bolcar la RomFS.&lt;br&gt;Completa copiarà tots els arxius al nou directori mentre que&lt;br&gt;esquelet només crearà l&apos;estructura de directoris.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>No hi ha suficient espai lliure a %1 per extreure el RomFS. Si us plau, alliberi espai o esculli un altre directori de bolcat a Emulació &gt; Configuració &gt; Sistema &gt; Sistema d&apos;arxius &gt; Carpeta arrel de bolcat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Extraient RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Cancel·la</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Extracció de RomFS completada correctament!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>L&apos;operació s&apos;ha completat correctament.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Error obrint %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Seleccionar directori</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Propietats</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Les propietats del joc no s&apos;han pogut carregar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Executable de Switch (%1);;Tots els Arxius (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Carregar arxiu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Obrir el directori de la ROM extreta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Directori seleccionat invàlid</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>El directori que ha seleccionat no conté un arxiu &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Arxiu de Switch Instal·lable (*.nca *.nsp *.xci);;Arxiu de Continguts Nintendo (*.nca);;Paquet d&apos;enviament Nintendo (*.nsp);;Imatge de Cartutx NX (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Instal·lar arxius</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n arxiu(s) restants</numerusform><numerusform>%n arxiu(s) restants</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instal·lant arxiu &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Resultats instal·lació</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Per evitar possibles conflictes, no recomanem als usuaris que instal·lin jocs base a la NAND.
Si us plau, utilitzi aquesta funció només per a instal·lar actualitzacions i DLCs.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n nou(s) arxiu(s) s&apos;ha(n) instal·lat
@@ -4266,7 +4321,7 @@ Si us plau, utilitzi aquesta funció només per a instal·lar actualitzacions i
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n arxiu(s) s&apos;han sobreescrit
@@ -4274,7 +4329,7 @@ Si us plau, utilitzi aquesta funció només per a instal·lar actualitzacions i
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n arxiu(s) no s&apos;han instal·lat
@@ -4282,401 +4337,401 @@ Si us plau, utilitzi aquesta funció només per a instal·lar actualitzacions i
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Aplicació del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Arxiu del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Actualització de l&apos;aplicació del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Paquet de firmware (Tipus A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Paquet de firmware (Tipus B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Joc</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Actualització de joc</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>DLC del joc</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Títol delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Seleccioni el tipus d&apos;instal·lació NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Seleccioni el tipus de títol que desitja instal·lar aquest NCA com a:
(En la majoria dels casos, el valor predeterminat &apos;Joc&apos; està bé.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Ha fallat la instal·lació</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>El tipus de títol seleccionat per el NCA és invàlid.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Arxiu no trobat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Arxiu &quot;%1&quot; no trobat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>D&apos;acord</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Falta el compte de yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Per tal d&apos;enviar un cas de prova de compatibilitat de joc, ha de vincular el seu compte de yuzu.&lt;br&gt;&lt;br/&gt;Per a vincular el seu compte de yuzu, vagi a Emulació &amp; gt; Configuració &amp; gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Error obrint URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>No es pot obrir la URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>Gravació TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>Sobreescriure l&apos;arxiu del jugador 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Configuració invàlida detectada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>El controlador del mode portàtil no es pot fer servir en el mode acoblat. Es seleccionarà el controlador Pro en el seu lloc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
- <translation type="unfinished"/>
+ <translation>Error</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
- <translation type="unfinished"/>
+ <translation>El joc actual no està buscant amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
- <translation type="unfinished"/>
+ <translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
- <translation type="unfinished"/>
+ <translation>L&apos;amiibo actual ha sigut eliminat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Arxiu Amiibo (%1);; Tots els Arxius (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Carregar Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Error obrint l&apos;arxiu de dades d&apos;Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>No s&apos;ha pogut obrir l&apos;arxiu de dades d&apos;Amiibo &quot;%1&quot; per a lectura.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Error llegint l&apos;arxiu de dades d&apos;Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>No s&apos;han pogut llegir completament les dades d&apos;Amiibo. S&apos;esperava llegir %1 bytes, però només s&apos;han pogut llegir %2 bytes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Error al carregar les dades d&apos;Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>No s&apos;han pogut carregar les dades d&apos;Amiibo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Captura de pantalla</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>Imatge PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>Estat TAS: executant %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>Estat TAS: gravant %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>Estat TAS: inactiu %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>Estat TAS: invàlid</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>&amp;Parar l&apos;execució</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Iniciar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>Parar g&amp;ravació</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>G&amp;ravar</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Construint: %n shader(s)</numerusform><numerusform>Construint: %n shader(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Escala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Velocitat: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Velocitat: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Joc: %1 FPS (desbloquejat)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Joc: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Fotograma: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU ALTA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EXTREMA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>ERROR GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>MÉS PROPER</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>BILINEAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>BICÚBIC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>GAUSSIÀ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>SENSE AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>El joc que està intentant carregar requereix d&apos;arxius addicionals de la seva Switch abans de poder jugar. &lt;br/&gt;&lt;br/&gt;Per a obtenir més informació sobre com bolcar aquests arxius, vagi a la següent pàgina de la wiki: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Bolcar arxius del sistema i les fonts compartides des d&apos;una Consola Switch&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;Desitja tornar a la llista de jocs? Continuar amb l&apos;emulació pot provocar el tancament inesperat, dades de partides guardades corruptes o altres errors.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu no ha pogut localitzar l&apos;arxiu de sistema de la Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu no ha pogut localitzar un arxiu de sistema de la Switch: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Arxiu del sistema no trobat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Falta arxiu del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu no ha pogut trobar les fonts compartides de la Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Fonts compartides no trobades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Falten les fonts compartides</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Error fatal</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu ha trobat un error fatal, consulti el registre per a obtenir més detalls. Per a més informació sobre com accedir al registre, consulti la següent pàgina: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Com carregar l&apos;arxiu de registre?&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt; Desitja tornar al llistat de jocs? Continuar amb l&apos;emulació pot provocar el tancament inesperat, dades de partides guardades corruptes o altres errors.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Trobat error fatal</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Confirmi la clau de rederivació</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4693,37 +4748,37 @@ i opcionalment faci còpies de seguretat.
Això eliminarà els arxius de les claus generats automàticament i tornarà a executar el mòdul de derivació de claus.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Falten fusibles</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation> - Falta BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - Falta BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation> - Falta PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Falten components de derivació</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Falten les claus d&apos;encriptació. &lt;br&gt;Si us plau, segueixi &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guia ràpida de yuzu&lt;/a&gt; per a obtenir totes les seves claus, firmware i jocs.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4732,39 +4787,39 @@ Això pot prendre fins a un minut depenent
del rendiment del seu sistema.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Derivant claus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Seleccioni el destinatari per a bolcar el RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Si us plau, seleccioni quin RomFS desitja bolcar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Està segur de que vol tancar yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Està segur de que vol aturar l&apos;emulació? Qualsevol progrés no guardat es perdrà.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4776,38 +4831,38 @@ Desitja tancar-lo de totes maneres?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL no disponible!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu no ha estat compilat amb suport per OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Error al inicialitzar OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>La seva GPU no suporta OpenGL, o no té instal·lat els últims controladors gràfics.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Error inicialitzant OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>La seva GPU no suporta OpenGL 4.6, o no té instal·lats els últims controladors gràfics.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>És possible que la seva GPU no suporti una o més extensions necessàries d&apos;OpenGL. Si us plau, asseguris de tenir els últims controladors de la tarjeta gràfica.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensions no suportades:&lt;br&gt;%2</translation>
</message>
@@ -4969,82 +5024,82 @@ Desitja tancar-lo de totes maneres?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfecte</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>El joc funciona a la perfecció sense errors d&apos;àudio o gràfics, totes les funcions provades funcionen segons el previst
sense cap solució temporal necessària.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Genial</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>El joc funciona amb errors gràfics o d&apos;àudio menors i es pot jugar de principi a fi. Pot requerir de
solucions temporals.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Correcte</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>El joc funciona amb importants errors gràfics o d&apos;àudio, però el joc es pot jugar de principi a fi amb
solucions temporals.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Malament</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>El joc funciona, però amb importants errors gràfics o d&apos;àudio. És impossible avançar en zones específiques
inclús amb solucions temporals.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro / Menú</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>No és possible jugar a aquest joc degut a importants errors gràfics o d&apos;àudio. És impossible avançar més enllà de la pantalla
d&apos;inici.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>No engega</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>El joc es bloqueja al intentar iniciar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>No provat</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Aquest joc encara no ha estat provat.</translation>
</message>
@@ -5078,22 +5133,22 @@ d&apos;inici.</translation>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Si us plau, confirmi que aquests són els arxius que desitja instal·lar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Instal·lar una actualització o DLC sobreescriurà qualsevol prèviament instal·lat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Instal·lar</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Instal·lar arxius a la NAND</translation>
</message>
@@ -5126,22 +5181,22 @@ d&apos;inici.</translation>
<translation>Temps estimat 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Carregant...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Carregant shaders %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Engegant...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Temps estimat %1</translation>
</message>
@@ -5311,7 +5366,7 @@ d&apos;inici.</translation>
<message>
<location filename="../../src/yuzu/main.ui" line="269"/>
<source>Load/Remove &amp;Amiibo...</source>
- <translation type="unfinished"/>
+ <translation>Carregar/Eliminar &amp;Amiibo...</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="277"/>
@@ -5421,284 +5476,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Títols instal·lats a la SD</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Títols instal·lats a la NAND</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Títols del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Afegir un nou directori de jocs</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>Preferits</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[no establert]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Rotació %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Eix %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Botó %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[desconegut]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Esquerra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Dreta</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Avall</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Amunt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Inici</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation>Cercle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation>Creu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation>Cuadrat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation>Triangle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>Compartir</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>Opcions</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Inici</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Tàctil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Roda</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation>Enrere</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation>Endavant</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation>Tasca</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[indefinit]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation>%1%2%3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[invàlid]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation>%1%2Rotació %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eix %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eixos %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2Moviment %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation>%1%2Botó %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[sense ús]</translation>
</message>
@@ -5739,7 +5794,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Controlador Pro</translation>
</message>
@@ -5752,7 +5807,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Joycons duals</translation>
</message>
@@ -5765,7 +5820,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Joycon esquerra</translation>
</message>
@@ -5778,7 +5833,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Joycon dret</translation>
</message>
@@ -5806,7 +5861,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Portàtil</translation>
</message>
@@ -5927,32 +5982,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Controlador de GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation>Controlador NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation>Controlador SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation>Controlador N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
@@ -5997,7 +6052,7 @@ Si us plau, intenti-ho de nou o contacti el desenvolupador del programari.</tran
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -6005,17 +6060,17 @@ Si us plau, intenti-ho de nou o contacti el desenvolupador del programari.</tran
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Seleccioni un usuari:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Usuaris</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Selector de perfil</translation>
</message>
@@ -6068,7 +6123,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Pila de trucades</translation>
</message>
@@ -6076,17 +6131,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>esperant el mutex 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>té receptors: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>mànec del propietari: 0x%1</translation>
</message>
@@ -6094,12 +6149,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>esperant tots els objectes</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>esperant un dels següents objectes</translation>
</message>
@@ -6107,12 +6162,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>esperat per cap fil</translation>
</message>
@@ -6120,112 +6175,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>executable</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>pausat</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>dormint</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>esperant per resposta IPC</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>esperant objectes</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>esperant variable condicional</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>esperant al àrbitre d&apos;adreça</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>esperant reanudar la suspensió</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>esperant</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>inicialitzat</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>acabat</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>desconegut</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideal</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>nucli %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>processador = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>nucli ideal = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>màscara d&apos;afinitat = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>id fil = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>prioritat = %1(actual) / %2(normal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>últims ticks consecutius = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>no esperant per mutex</translation>
</message>
@@ -6233,7 +6288,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>esperat per fil</translation>
</message>
@@ -6241,7 +6296,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>Arbre d&apos;&amp;espera</translation>
</message>
diff --git a/dist/languages/cs.ts b/dist/languages/cs.ts
index 65bb1f792..f457ff62b 100644
--- a/dist/languages/cs.ts
+++ b/dist/languages/cs.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Komunikujeme se serverem...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Zrušit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Dotkněte se levého horního rohu &lt;br&gt;vašeho touchpadu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Teď se dotkněte dolního pravého rohu &lt;br&gt;vašeho touchpadu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Nastavení dokončeno!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -355,7 +355,19 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Nastavení CPU jsou k dispozici, pouze když není spuštěna žádná hra.</translation>
</message>
@@ -511,11 +523,38 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Nastavení CPU jsou k dispozici, pouze když není spuštěna žádná hra.</translation>
</message>
@@ -673,7 +712,12 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation type="unfinished"/>
</message>
@@ -723,78 +767,78 @@ p, li { white-space: pre-wrap; }
<translation>Nastavení yuzu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Zvuk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Ladění</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Souborový systém</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Obecné</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>GrafickyPokročilé</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Zkratky</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Ovládání</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Profily</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Síť</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Systém</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Seznam her</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1029,12 +1073,12 @@ p, li { white-space: pre-wrap; }
<translation>Resetovat všechna nastavení</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Toto vyresetuje všechna nastavení a odstraní konfigurace pro jednotlivé hry. Složky s hrami a profily zůstanou zachovány. Přejete si pokračovat?</translation>
</message>
@@ -1263,7 +1307,7 @@ p, li { white-space: pre-wrap; }
<translation>Barva Pozadí:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation type="unfinished"/>
</message>
@@ -1831,7 +1875,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Levá Páčka</translation>
</message>
@@ -1925,14 +1969,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1951,7 +1995,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
@@ -1964,15 +2008,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2029,230 +2073,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Pravá páčka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Vyčistit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[nenastaveno]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Přepnout tlačítko</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Převrátit osy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Namapovat analogovou páčku</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Po stisknutí OK nejprve posuňte joystick horizontálně, poté vertikálně.
Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontálně.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Deadzone: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Rozsah modifikátoru: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Dual Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Levý Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Pravý Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>V rukou</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Ovladač GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Start / Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Control Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Shake!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[čekání]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Nový profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Zadejte název profilu:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Vytvořit profil vstupu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>Zadaný název profilu není platný!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se vytvořit profil vstupu &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Odstranit profil vstupu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se odstranit profil vstupu &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Načíst profil vstupu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se načíst profil vstupu &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Uložit profil vstupu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se uložit profil vstupu &quot;%1&quot;</translation>
</message>
@@ -2300,7 +2344,7 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Konfigurovat </translation>
</message>
@@ -2336,7 +2380,7 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Test</translation>
</message>
@@ -2351,82 +2395,82 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
<translation>Odstranit server</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Dozvědět se více&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Číslo portu obsahuje neplatné znaky</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>Port musí být v rozsahu 0 až 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>IP adresa není platná</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>UDP server již existuje</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Není možné přidat více než 8 serverů</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Testování</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Nastavování</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Test byl úspěšný</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Úspěšně jsme získali data ze serveru.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Test byl neúspěšný</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Nedostali jsme platná data ze serveru.&lt;br&gt;Prosím zkontrolujte, že váš server je nastaven správně a že adresa a port jsou zadány správně.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>Probíhá test UDP nebo konfigurace kalibrace.&lt;br&gt;Prosím vyčkejte na dokončení.</translation>
</message>
@@ -2454,7 +2498,7 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Žádné</translation>
</message>
@@ -2507,47 +2551,47 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
<translation>Vývojář</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Doplňky</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Obecné</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Systém</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Pokroč. grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Zvuk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Vlastnosti</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Použít globální nastavení (%1)</translation>
</message>
@@ -2565,12 +2609,12 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
<translation>Doplňky</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Název opravy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Verze</translation>
</message>
@@ -2628,7 +2672,7 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
<translation>Spravování profilů je k dispozici, pouze když neběží žádná hra. </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2636,92 +2680,92 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Zadejte přezdívku</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Uživatelé</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Zadejte přezdívku pro nového uživatele:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Zadejte novou přezdívku:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Potvrdit smazání</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Přejete si odstranit uživatele se jménem &quot;%1&quot;?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Vyberte obrázek uživatele</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Obrázek JPEG (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Chyba při odstraňování obrázku</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Chyba při přepisování předchozího obrázku na: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Chyba při odstraňování souboru</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Nelze odstranit existující soubor: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Chyba při vytváření složky s obrázkem uživatele</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Nelze vytvořit složku %1 pro ukládání obrázků uživatele.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Chyba při kopírování obrázku uživatele</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Nelze zkopírovat obrázek z %1 do %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation type="unfinished"/>
</message>
@@ -3165,17 +3209,17 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
<translation>Systémová nastavení jsou dostupná pouze, pokud hra neběží.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Toto vymění váš virtuální Switch za nový. Váš aktuální virtuální Switch nebude možno navrátit. Tohle může mít nečekané následky ve hrách. Tohle může selhat pokud použijete starý konfig savu. Pokračovat?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Varování</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>ID Konzole: 0x%1</translation>
</message>
@@ -3291,54 +3335,54 @@ Táhněte body pro změnu pozice nebo dvojitě klikněte na buňky tabulky pro z
<translation>Smazat bod</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Tlačítko</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Nový profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Zadejte název nového profilu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Smazat profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Odstranit profil %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Přejmenovat profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Nový název:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[stiskněte klávesu]</translation>
</message>
@@ -3776,893 +3820,894 @@ Táhněte body pro změnu pozice nebo dvojitě klikněte na buňky tabulky pro z
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymní data jsou sbírána&lt;/a&gt; pro vylepšení yuzu. &lt;br/&gt;&lt;br/&gt;Chcete s námi sdílet anonymní data?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Načítání Web Appletu...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Zakázat Web Applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>Zakázání Web Appletu způsobí, že se po zbytek emulované relace již nebude zobrazovat. To může vést k nedefinovanému chování a mělo by být použito pouze u hry Super Mario 3D All-Stars. Opravdu si přejete Web Applet zakázat?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>Počet aktuálně sestavovaných shaderů</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Aktuální emulační rychlost. Hodnoty vyšší než 100% indikují, že emulace běží rychleji nebo pomaleji než na Switchi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Kolik snímků za sekundu aktuálně hra zobrazuje. Tohle závisí na hře od hry a scény od scény.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Čas potřebný na emulaci framu scény, nepočítá se limit nebo v-sync. Pro plnou rychlost by se tohle mělo pohybovat okolo 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>DOCK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Vymazat poslední soubory</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Pokračovat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Pauza</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Varování Zastaralý Formát Hry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Používáte rozbalený formát hry, který je zastaralý a byl nahrazen jinými jako NCA, NAX, XCI, nebo NSP. Rozbalená ROM nemá ikony, metadata, a podporu updatů.&lt;br&gt;&lt;br&gt;Pro vysvětlení všech možných podporovaných typů, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;zkoukni naší wiki&lt;/a&gt;. Tato zpráva se nebude znova zobrazovat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Chyba při načítání ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>Tento formát ROM není podporován.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Nastala chyba při inicializaci jádra videa.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Chyba při načítání ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Pro extrakci souborů postupujte podle &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;rychlého průvodce yuzu&lt;/a&gt;. Nápovědu naleznete na &lt;br&gt;wiki&lt;/a&gt; nebo na Discordu&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Nastala chyba. Koukni do logu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Uložit data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Módovat Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Chyba otevírání složky %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Složka neexistuje!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Chyba při otevírání přenositelné mezipaměti shaderů</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Obsah</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Aktualizace</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Odebrat položku</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Odebrat Nainstalovanou Hru %1? </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Úspěšně odebráno</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>Úspěšně odebrán nainstalovaný základ hry.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Chyba při odstraňování %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Základ hry není nainstalovaný na NAND a nemůže být odstraněn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Úspěšně odebrána nainstalovaná aktualizace.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Není nainstalovaná žádná aktualizace pro tento titul.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Není nainstalované žádné DLC pro tento titul.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Úspěšně odstraněno %1 nainstalovaných DLC.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Odstranit vlastní konfiguraci hry?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Odstranit soubor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Chyba při odstraňování přenositelné mezipaměti shaderů</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>Mezipaměť shaderů pro tento titul neexistuje.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Přenositelná mezipaměť shaderů úspěšně odstraněna</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Nepodařilo se odstranit přenositelnou mezipaměť shaderů</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Chyba při odstraňování vlastní konfigurace hry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Vlastní konfigurace hry pro tento titul neexistuje.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Úspěšně odstraněna vlastní konfigurace hry.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Nepodařilo se odstranit vlastní konfiguraci hry.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>Extrakce RomFS se nepovedla!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Nastala chyba při kopírování RomFS souborů, nebo uživatel operaci zrušil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Plný</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Kostra</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Vyber RomFS Dump Mode</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Vyber jak by si chtěl RomFS vypsat.&lt;br&gt;Plné zkopíruje úplně všechno, ale&lt;br&gt;kostra zkopíruje jen strukturu složky.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Extrahuji RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Zrušit</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Extrakce RomFS se povedla!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>Operace byla dokončena úspěšně.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Chyba při otevírání %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Vybraná Složka</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Vlastnosti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Herní vlastnosti nemohly být načteny.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch Executable (%1);;Všechny soubory (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Načíst soubor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Otevřít složku s extrahovanou ROM</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Vybraná složka je neplatná</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Složka kterou jste vybrali neobsahuje soubor &quot;main&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Instalovatelný soubor pro Switch (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Instalovat Soubory</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instalování souboru &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Výsledek instalace</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Abychom předešli možným konfliktům, nedoporučujeme uživatelům instalovat základní hry na paměť NAND.
Tuto funkci prosím používejte pouze k instalaci aktualizací a DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Systémová Aplikace</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Systémový archív</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Systémový Update Aplikace</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Firmware-ový baliček (Typu A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Firmware-ový baliček (Typu B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Hra</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Update Hry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Herní DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Delta Title</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Vyberte typ instalace NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Vyberte typ title-u, který chcete nainstalovat tenhle NCA jako:
(Většinou základní &quot;game&quot; stačí.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Chyba v instalaci</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Tento typ pro tento NCA není platný.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Soubor nenalezen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Soubor &quot;%1&quot; nenalezen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Chybí účet yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Pro přidání recenze kompatibility je třeba mít účet yuzu&lt;br&gt;&lt;br/&gt;Pro nalinkování yuzu účtu jdi do Emulace &amp;gt; Konfigurace &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Chyba při otevírání URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Nelze otevřít URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Zjištěno neplatné nastavení</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Ruční ovladač nelze používat v dokovacím režimu. Bude vybrán ovladač Pro Controller.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Soubor Amiibo (%1);; Všechny Soubory (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Načíst Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Chyba při načítání souboru Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Amiibo &quot;%1&quot; nešlo otevřít v řežimu pro čtení.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Chyba načítání Amiiba</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Načtení celého Amiiba nebylo možné. Očekáváno bylo %1 bytů, ale pouze %2 bytů se načetlo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Chyba načítání Amiiba</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Načtení Amiiba nebylo možné</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Pořídit Snímek Obrazovky</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG Image (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Rychlost: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Rychlost: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Hra: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Frame: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMÁLNÍ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU VYSOKÝ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EXTRÉMNÍ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>GPU ERROR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Hra, kterou se snažíte načíst potřebuje další data z vašeho Switche, než bude moci být načtena.&lt;br/&gt;&lt;br/&gt;Pro více informací o získání těchto souboru se koukněte na wiki: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Získávání Systémových Archivů a Sdílených Fontu z konzole Switch&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Přejete si odejít do listu her? Pokračování v emulaci by mohlo mít negativní účinky jako crashe, rozbité savy , nebo další bugy.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>Aplikace yuzu nenašla systémový archiv Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>Aplikace yuzu nenašla systémový archiv Switch: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Systémový Archív Nenalezen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Chybí systémový archiv</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>Aplikace yuzu nenašla sdílená písma Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Sdílené Fonty Nenalezeny</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Chybí sdílené písmo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Fatální Chyba</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu narazilo na fatální chybu, prosím kouknšte do logu pro více informací. Pro více informací jak se dostat do logu se koukněte na následující stránku: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt; Jak Uploadnout Log&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Přejete si odejít do listu her? Pokračování v emulaci může mít za následek crashe, rozbité savy, nebo další bugy.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Vyskytla se kritická chyba</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Potvďte Rederivaci Klíčů</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4679,37 +4724,37 @@ a udělejte si zálohu.
Toto vymaže věechny vaše automaticky generované klíče a znova spustí modul derivace klíčů.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Chybí Fuses</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- Chybí BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - Chybí BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation> - Chybí PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Chybé odvozené komponenty</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4718,39 +4763,39 @@ Tohle může zabrat až minutu
podle výkonu systému.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Derivuji Klíče</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Vyberte Cíl vypsaní RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Vyberte, kterou RomFS chcete vypsat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Jste si jist, že chcete zavřít yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Jste si jist, že chcete ukončit emulaci? Jakýkolic neuložený postup bude ztracen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4762,38 +4807,38 @@ Opravdu si přejete ukončit tuto aplikaci?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL není k dispozici!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu nebylo sestaveno s OpenGL podporou.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Chyba při inicializaci OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Vaše grafická karta pravděpodobně nepodporuje OpenGL nebo nejsou nainstalovány nejnovější ovladače.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Chyba při inicializaci OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Vaše grafická karta pravděpodobně nepodporuje OpenGL 4.6 nebo nejsou nainstalovány nejnovější ovladače.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Vaše grafická karta pravděpodobně nepodporuje jedno nebo více rozšíření OpenGL. Ujistěte se prosím, že jsou nainstalovány nejnovější ovladače.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Nepodporované rozšíření:&lt;br&gt;%2</translation>
</message>
@@ -4955,78 +5000,78 @@ Opravdu si přejete ukončit tuto aplikaci?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfektní</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Hra funguje bez problému, bez zvukových nebo grafických glitchů, všechno testované funguje jak má bez žádných obkliček</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Skvělé</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Hra funguje s jemnými grafickými nebo vizuálními chybami, ale je hratelná od startu do konce, avšak může potřebovat problém obejít.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Okej</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>Hra funguje se zasadními grafickými nebo zvukovými chybami, ale je hratelná od začátku do konce s překážkami.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Špatný</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Hra funguje se zasadními grafickými nebo zvukovými chybami. Není možné se dostat přes specifická místa, kvůli glitchům
i s obkličkami.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/Menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>Hra nejde kompletně hrát z důvodu grafických nebo zvukových chyb. Nejde se dostat přes Start Screen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Nebootuje</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>Hra crashuje při startu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Netestováno</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Hra ještě nebyla testována</translation>
</message>
@@ -5060,22 +5105,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Potvrďte, že se jedná o soubory, které chcete nainstalovat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Instalací aktualizace nebo DLC se přepíše dříve nainstalovaná aktualizace nebo DLC.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Nainstalovat</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Instalovat soubory na NAND</translation>
</message>
@@ -5107,22 +5152,22 @@ Screen.</source>
<translation>Odhadovaný čas 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Načítání...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Načítání shaderů %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Spouštění...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Odhadovaný čas %1</translation>
</message>
@@ -5402,284 +5447,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Nainstalované SD tituly</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Nainstalované NAND tituly</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Systémové tituly</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Přidat novou složku s hrami</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>Oblíbené</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[Nenastaveno]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Poziční klobouček %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Osa %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Tlačítko %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[Neznámá]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Doleva</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Doprava</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Dolů</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Nahoru</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Dotyk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[nepoužito]</translation>
</message>
@@ -5720,7 +5765,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
@@ -5733,7 +5778,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Oba Joycony</translation>
</message>
@@ -5746,7 +5791,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Levý Joycon</translation>
</message>
@@ -5759,7 +5804,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Pravý Joycon</translation>
</message>
@@ -5787,7 +5832,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
@@ -5908,32 +5953,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Ovladač GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
@@ -5978,7 +6023,7 @@ Zkuste to prosím znovu nebo kontaktujte vývojáře softwaru.</translation>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5986,17 +6031,17 @@ Zkuste to prosím znovu nebo kontaktujte vývojáře softwaru.</translation>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Vyber Uživatele:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Uživatelé</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Profilový Manažer</translation>
</message>
@@ -6049,7 +6094,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Call stack</translation>
</message>
@@ -6057,17 +6102,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>waiting for mutex 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>has waiters: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>owner handle: 0x%1</translation>
</message>
@@ -6075,12 +6120,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>waiting for all objects</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>waiting for one of the following objects</translation>
</message>
@@ -6088,12 +6133,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>čekání bez přiřazeného vlákna</translation>
</message>
@@ -6101,112 +6146,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>spustitelné</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>pauznuto</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>spící</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>čekání na odpověd IPC</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>waiting for objects</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>čekání na proměnnou podmínky</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>waiting for address arbiter</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>čekání na obnovení pozastavení</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>čekání</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>inicializováno</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>ukončeno</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>neznámý</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideální</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>jádro %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>procesor = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>ideální jádro = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>affinity mask = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>id vlákna = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>priorita = %1(aktuální) / %2(normální)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>last running ticks = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>not waiting for mutex</translation>
</message>
@@ -6214,7 +6259,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>waited by thread</translation>
</message>
@@ -6222,7 +6267,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>Ř&amp;etězec čekání</translation>
</message>
diff --git a/dist/languages/da.ts b/dist/languages/da.ts
index 7ba5b125a..2181bf491 100644
--- a/dist/languages/da.ts
+++ b/dist/languages/da.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Kommunikerer med serveren...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Afbryd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Rør det øverste venstre hjørne &lt;br&gt; af din pegeplade.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Rør nu det nederste højre hjørne &lt;br&gt; af din pegeplade.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Konfiguration fuldført!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -359,7 +359,19 @@ p, li { white-space: pre-wrap; }
<translation>Deaktivér adresseplads-kontrol</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU-indstillinger er kun tilgængelige, når spil ikke kører.</translation>
</message>
@@ -519,11 +531,38 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>Aktivér Vært-MMU-Emulering</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU-indstillinger er kun tilgængelige, når spil ikke kører.</translation>
</message>
@@ -681,7 +720,12 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Dette vil automatisk blive nulstillet, når yuzu lukkes.</translation>
</message>
@@ -731,78 +775,78 @@ p, li { white-space: pre-wrap; }
<translation>yuzu Konfiguration</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Lyd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Fejlfind</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Filsystem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Generelt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>GrafikAvanceret</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Genvejstaster</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Styring</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Profiler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Netværk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Spilliste</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Net</translation>
</message>
@@ -1037,12 +1081,12 @@ p, li { white-space: pre-wrap; }
<translation>Nulstil Alle Indstillinger</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>dette nulstiller alle indstillinger og fjerner alle pr-spil-konfigurationer. Dette vil ikke slette spilmapper, -profiler, eller input-profiler. Fortsæt?</translation>
</message>
@@ -1271,7 +1315,7 @@ p, li { white-space: pre-wrap; }
<translation>Baggrundsfarve:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly-Shadere, kun NVIDIA)</translation>
</message>
@@ -1839,7 +1883,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Venstre Styrepind</translation>
</message>
@@ -1933,14 +1977,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1959,7 +2003,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
@@ -1972,15 +2016,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2037,230 +2081,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Højre Styrepind</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Ryd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[ikke indstillet]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Funktionsskifteknap</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Omvend akser</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>Angiv tærskel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Vælg en værdi imellem 0% og 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Tilsted Analog Pind</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Bevæg, efter tryk på OK, først din styrepind vandret og så lodret.
Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Dødzone: 1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Forandringsrækkevidde: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro-Styringsenhed</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Dobbelt-Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Venstre Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Højre Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Håndholdt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>GameCube-Styringsenhed</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Start / Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Styrepind</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Pind</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Ryst!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[venter]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Ny Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Indtast et profilnavn:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Opret Input-Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>Det angivne profilnavn er ikke gyldigt!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Oprettelse af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Slet Input-Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Sletning af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Indlæs Input-Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Indlæsning af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Gem Input-Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Lagring af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
@@ -2308,7 +2352,7 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Konfigurér</translation>
</message>
@@ -2344,7 +2388,7 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Afprøv</translation>
</message>
@@ -2359,82 +2403,82 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
<translation>Fjernserver</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Find Ud Af Mere&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Portnummer indeholder ugyldige tegn</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>Port skal være imellem 0 and 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>IP-adresse er ikke gyldig</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Denne UDP-server eksisterer allerede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Ude af stand til, at tilføje mere end 8 servere</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Afprøvning</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Konfigurér</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Afprøvning Lykkedes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Modtagelse af data fra serveren lykkedes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Afprøvning Mislykkedes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Kunne ikke modtage gyldig data fra serveren.&lt;br&gt;Bekræft venligst, at serveren er opsat korrekt, og at adressen og porten er korrekte.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>UDP-Afprøvnings- eller -kalibreringskonfiguration er i gang.&lt;br&gt;vent venligst på, at de bliver færdige.</translation>
</message>
@@ -2462,7 +2506,7 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
<translation>Netværksgrænseflade</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Ingen</translation>
</message>
@@ -2515,47 +2559,47 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
<translation>Udvikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Tilføjelser</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Generelt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Lyd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Egenskaber</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Brug global konfiguration (%1)</translation>
</message>
@@ -2573,12 +2617,12 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
<translation>Tilføjelser</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Lap-Navn</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Version</translation>
</message>
@@ -2636,7 +2680,7 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
<translation>Profilhåndtering er kun tilgængelig, når spil ikke kører. </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2644,92 +2688,92 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Indtast Brugernavn</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Brugere</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Indtast et brugernavn for den nye bruger:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Indtast et nyt brugernavn:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Bekræft Slet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Du er ved at slette brugeren, med navnet &quot;%1&quot;. Er du sikker?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Vælg Brugerbillede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>JPEG-Billeder (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Fejl ved sletning af billede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Der skete en fejl, ved forsøg på at overskrive forrige billede på: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Fejl ved sletning af fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Kan ikke slette eksisterende fil: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Fejl ved oprettelse af brugerbillede-mappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Ude af stand til, at oprette mappe %1, til lagring af brugerbilleder.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Fejl ved kopiering af brugerbillede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Ude af stand til, at kopiere billede fra %1 til %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation type="unfinished"/>
</message>
@@ -3173,17 +3217,17 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
<translation>Systemindstillinger er kun tilgængelige, når spil ikke kører.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Dette vil erstatte din nuværende virtuelle Switch med en ny. Din nuværende virtuelle Switch vil ikke kunne gendannes. Dette kan have uforudsete konsekvenser i spil. Dette kan fejle, hvis du bruger en forældet konfiguration fra gemte data. Fortsæt?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Advarsel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>Konsol-ID: 0x%1</translation>
</message>
@@ -3299,54 +3343,54 @@ Træk punkter, for at skifte position, eller dobbeltklik i tabelceller, for at r
<translation>Slet Punkt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Knap</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Ny Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Indtast navnet på den nye profil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Slet Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Slet profil %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Omdøb Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Nyt navn:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[tryk på tast]</translation>
</message>
@@ -3784,891 +3828,892 @@ Træk punkter, for at skifte position, eller dobbeltklik i tabelceller, for at r
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonym data indsamles&lt;/a&gt;, for at hjælp med, at forbedre yuzu. &lt;br/&gt;&lt;br/&gt;Kunne du tænke dig, at dele dine brugsdata med os?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetri</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Indlæser Net-Applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Deaktivér Net-Applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Aktuel emuleringshastighed. Værdier højere eller lavere end 100% indikerer, at emulering kører hurtigere eller langsommere end en Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Advarsel, Forældet Spilformat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Fejl under indlæsning af ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>ROM-formatet understøttes ikke.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Der skete en fejl under initialisering af video-kerne.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Fejl ved Åbning af %1 Mappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Mappe eksisterer ikke!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS-Udpakning Mislykkedes!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Der skete en fejl ved kopiering af RomFS-filerne, eller brugeren afbrød opgaven.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Fuld</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Skelet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Vælg RomFS-Nedfældelsestilstand</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Udpakker RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Afbryd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS-Udpakning Lykkedes!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>Fuldførelse af opgaven lykkedes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Fejl ved Åbning af %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Vælg Mappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Egenskaber</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Spil-egenskaberne kunne ikke indlæses.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch-Eksekverbar (%1);;Alle filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Indlæs Fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Åbn Udpakket ROM-Mappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Ugyldig Mappe Valgt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Installér fil &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Systemapplikation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Systemarkiv</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Systemapplikationsopdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Firmwarepakke (Type A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Firmwarepakke (Type B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Spil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Spilopdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Spiludvidelse</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Delta-Titel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Vælg NCA-Installationstype...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Installation mislykkedes</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Fil ikke fundet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Fil &quot;%1&quot; ikke fundet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Manglende yuzu-Konto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo-Fil (%1);; Alle Filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Indlæs Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Fejl ved åbning af Amiibo-datafil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Ude af stand til, at åbne Amiibo-fil &quot;%1&quot; til indlæsning.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Fejl ved indlæsning af Amiibo-datafil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Fejl ved indlæsning af Amiibo-data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Ude af stand til, at indlæse Amiibo-data.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Optag Skærmbillede</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG-Billede (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Hastighed: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Hastighed: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Spil: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Billede: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu var ude af stand til, at lokalisere et Switch-systemarkiv. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu var ude af stand til, at lokalisere et Switch-systemarkiv. %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Systemarkiv Ikke Fundet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Systemarkiv Mangler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu var ude af stand til, at finde delte Switch-skrifttyper. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Delte Skrifttyper Ikke Fundet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Delte Skrifttyper Mangler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Fatal Fejl</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Stødte på Fatal Fejl</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4679,76 +4724,76 @@ This will delete your autogenerated key files and re-run the key derivation modu
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Er du sikker på, at du vil lukke yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Er du sikker på, at du vil stoppe emulereingen? Enhver ulagret data, vil gå tabt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4758,38 +4803,38 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
@@ -4951,77 +4996,77 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfekt</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Fedt</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Dårlig</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/Menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Starter Ikke Op</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Ikke Afprøvet</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Spillet er endnu ikke blevet afprøvet.</translation>
</message>
@@ -5055,22 +5100,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation type="unfinished"/>
</message>
@@ -5102,22 +5147,22 @@ Screen.</source>
<translation>Estimeret Tid 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Indlæser...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Indlæser Shadere %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Starter...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Estimeret Tid %1</translation>
</message>
@@ -5393,284 +5438,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Installerede SD-Titler</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Installerede NAND-Titler</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Systemtitler</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Tilføj Ny Spilmappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Skift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[ikke indstillet]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Akse %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Knap %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[ukendt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Venstre</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Højre</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>ed</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Op</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Hjem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Berøring</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[ubrugt]</translation>
</message>
@@ -5711,7 +5756,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro-Styringsenhed</translation>
</message>
@@ -5724,7 +5769,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Dobbelt-Joycon</translation>
</message>
@@ -5737,7 +5782,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Venstre Joycon</translation>
</message>
@@ -5750,7 +5795,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Højre Joycon</translation>
</message>
@@ -5778,7 +5823,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Håndholdt</translation>
</message>
@@ -5899,32 +5944,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>GameCube-Styringsenhed</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
@@ -5963,7 +6008,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5971,17 +6016,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Vælg en bruger:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Brugere</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Profilvælger</translation>
</message>
@@ -6030,7 +6075,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation type="unfinished"/>
</message>
@@ -6038,17 +6083,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation type="unfinished"/>
</message>
@@ -6056,12 +6101,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation type="unfinished"/>
</message>
@@ -6069,12 +6114,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>ventet af ingen tråde</translation>
</message>
@@ -6082,112 +6127,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>sat på pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>slumrer</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>venter på IPC-svar</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>venter på objekter</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>idéel</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>kerne %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>processor = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>idéel kerne = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>tråd-id = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>prioritet = %1(aktuel) / %2(normal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation type="unfinished"/>
</message>
@@ -6195,7 +6240,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>ventet af tråd</translation>
</message>
@@ -6203,7 +6248,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/de.ts b/dist/languages/de.ts
index 787269a03..38d782812 100644
--- a/dist/languages/de.ts
+++ b/dist/languages/de.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Verbindung mit dem Server wird hergestellt...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Abbrechen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Tippe auf die obere linke Ecke &lt;br&gt;deines Touchpads.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Tippe nun auf die untere rechte Ecke &lt;br&gt;deines Touchpads.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Konfiguration abgeschlossen!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -276,7 +276,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="63"/>
<source>We recommend setting accuracy to &quot;Auto&quot;.</source>
- <translation type="unfinished"/>
+ <translation>Wir empfehlen die Genauigkeit auf &quot;Auto&quot; zu setzen.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="80"/>
@@ -354,7 +354,19 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation>Globalen Monitor ignorieren</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Die CPU-Einstellungen sind nur verfügbar, wenn kein Spiel aktiv ist.</translation>
</message>
@@ -510,11 +522,38 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Die CPU-Einstellungen sind nur verfügbar, wenn kein Spiel aktiv ist.</translation>
</message>
@@ -672,7 +711,12 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation type="unfinished"/>
</message>
@@ -722,78 +766,78 @@ p, li { white-space: pre-wrap; }
<translation>yuzu-Konfiguration</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Debug</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Dateisystem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Allgemein</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>GraphicsAdvanced</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Hotkeys</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Steuerung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Nutzer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Netzwerk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Spieleliste</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1028,12 +1072,12 @@ p, li { white-space: pre-wrap; }
<translation>Setze alle Einstellungen zurück</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Hierdurch werden alle Einstellungen zurückgesetzt und alle spielspezifischen Konfigurationen gelöscht. Spiel-Ordner, Profile oder Eingabeprofile werden nicht gelöscht. Fortfahren?</translation>
</message>
@@ -1098,17 +1142,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="206"/>
<source>No Video Output</source>
- <translation type="unfinished"/>
+ <translation>Keine Videoausgabe</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="211"/>
<source>CPU Video Decoding</source>
- <translation type="unfinished"/>
+ <translation>CPU Video Dekodierung</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="216"/>
<source>GPU Video Decoding (Default)</source>
- <translation type="unfinished"/>
+ <translation>GPU Video Dekodierung (Standard)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="242"/>
@@ -1153,47 +1197,47 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="330"/>
<source>Resolution:</source>
- <translation type="unfinished"/>
+ <translation>Auflösung:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="338"/>
<source>0.5X (360p/540p) [EXPERIMENTAL]</source>
- <translation type="unfinished"/>
+ <translation>0.5X (360p/540p) [EXPERIMENTELL]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="343"/>
<source>0.75X (540p/810p) [EXPERIMENTAL]</source>
- <translation type="unfinished"/>
+ <translation>0.75X (540p/810p) [EXPERIMENTELL]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="348"/>
<source>1X (720p/1080p)</source>
- <translation type="unfinished"/>
+ <translation>1X (720p/1080p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="353"/>
<source>2X (1440p/2160p)</source>
- <translation type="unfinished"/>
+ <translation>2X (1440p/2160p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="358"/>
<source>3X (2160p/3240p)</source>
- <translation type="unfinished"/>
+ <translation>3X (2160p/3240p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="363"/>
<source>4X (2880p/4320p)</source>
- <translation type="unfinished"/>
+ <translation>4X (2880p/4320p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="368"/>
<source>5X (3600p/5400p)</source>
- <translation type="unfinished"/>
+ <translation>5X (3600p/5400p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="373"/>
<source>6X (4320p/6480p)</source>
- <translation type="unfinished"/>
+ <translation>6X (4320p/6480p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="399"/>
@@ -1208,12 +1252,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="412"/>
<source>Bilinear</source>
- <translation type="unfinished"/>
+ <translation>Bilinear</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="417"/>
<source>Bicubic</source>
- <translation type="unfinished"/>
+ <translation>Bikubisch</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="422"/>
@@ -1223,17 +1267,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="427"/>
<source>ScaleForce</source>
- <translation type="unfinished"/>
+ <translation>ScaleForce</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="432"/>
<source>AMD FidelityFX™️ Super Resolution (Vulkan Only)</source>
- <translation type="unfinished"/>
+ <translation>AMD FidelityFX™️ Super Resolution (nur Vulkan)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="458"/>
<source>Anti-Aliasing Method:</source>
- <translation type="unfinished"/>
+ <translation>Kantenglättungs-Methode:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="466"/>
@@ -1243,7 +1287,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="471"/>
<source>FXAA</source>
- <translation type="unfinished"/>
+ <translation>FXAA</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="506"/>
@@ -1262,7 +1306,7 @@ p, li { white-space: pre-wrap; }
<translation>Hintergrundfarbe:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation type="unfinished"/>
</message>
@@ -1327,7 +1371,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="128"/>
<source>Automatic</source>
- <translation type="unfinished"/>
+ <translation>Automatisch</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="133"/>
@@ -1413,7 +1457,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="144"/>
<source>Home+%1</source>
- <translation type="unfinished"/>
+ <translation>Home+%1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="158"/>
@@ -1423,7 +1467,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="228"/>
<source>Invalid</source>
- <translation type="unfinished"/>
+ <translation>Ungültig</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="329"/>
@@ -1707,7 +1751,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2533"/>
<source>Emulated Devices</source>
- <translation type="unfinished"/>
+ <translation>Emulierte Geräte</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2545"/>
@@ -1830,7 +1874,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Linker Analogstick</translation>
</message>
@@ -1924,14 +1968,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1950,7 +1994,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
@@ -1963,15 +2007,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2028,230 +2072,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Rechter Analogstick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Löschen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[nicht belegt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Taste umschalten</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
- <translation type="unfinished"/>
+ <translation>Knopf invertieren</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Achsen umkehren</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Wert zwischen 0% und 100% wählen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Analog-Stick festlegen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Nach dem Drücken von OK den Joystick zuerst horizontal, dann vertikal bewegen.
Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizontal.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Deadzone: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Modifikator-Radius: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Zwei Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Linker Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Rechter Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>GameCube-Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
- <translation type="unfinished"/>
+ <translation>Poke-Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
- <translation type="unfinished"/>
+ <translation>NES Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
- <translation type="unfinished"/>
+ <translation>SNES Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
- <translation type="unfinished"/>
+ <translation>N64 Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
- <translation type="unfinished"/>
+ <translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Start / Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Analog Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Schütteln!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[wartet]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Neues Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Profilnamen eingeben:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Eingabeprofil erstellen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>Angegebener Profilname ist nicht gültig!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Erstellen des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Eingabeprofil löschen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Löschen des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Eingabeprofil laden</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Laden des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Eingabeprofil speichern</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Speichern des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
@@ -2299,7 +2343,7 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Einrichtung</translation>
</message>
@@ -2335,7 +2379,7 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Testen</translation>
</message>
@@ -2350,82 +2394,82 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
<translation>Server löschen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Mehr erfahren&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Port-Nummer hat ungültige Zeichen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>Port muss zwischen 0 und 65353 liegen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>IP Adresse ist ungültig</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Dieser UDP-Server existiert bereits</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Es können nicht mehr als 8 Server hinzugefügt werden</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Testen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Einrichten</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Test erfolgreich</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Daten wurden erfolgreich vom Server empfangen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Test fehlgeschlagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Konnte keine Daten vom Server empfangen.&lt;br&gt;Prüfe bitte, dass der Server korrekt eingerichtet wurde und dass Adresse und Port korrekt sind.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>UDP-Test oder Kalibration wird gerade durchgeführt.&lt;br&gt;Bitte warte einen Moment.</translation>
</message>
@@ -2453,7 +2497,7 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
<translation>Netzwerkinterface</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Keiner</translation>
</message>
@@ -2506,47 +2550,47 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
<translation>Entwickler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Allgemeines</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Erw. Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Einstellungen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Globale Konfiguration verwenden (%1)</translation>
</message>
@@ -2564,12 +2608,12 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
<translation>Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Patchname</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Version</translation>
</message>
@@ -2627,7 +2671,7 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
<translation>Die Nutzerverwaltung ist nur verfügbar, wenn kein Spiel aktiv ist.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2635,92 +2679,92 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Nutzername eingeben</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Nutzer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Gib einen Benutzernamen für den neuen Benutzer ein:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Gib einen neuen Nutzernamen ein:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Löschen bestätigen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Du bist dabei, den Nutzer &quot;%1&quot; zu löschen. Bist du dir sicher?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Profilbild wählen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>JPEG Bilddateien (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Fehler beim Löschen des Bildes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Fehler beim Überschreiben des vorherigen Bildes bei: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Fehler beim Löschen der Datei</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Konnte die bestehende Datei &quot;%1&quot; nicht löschen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Fehler beim Erstellen des Ordners für die Profilbilder</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Konnte Ordner &quot;%1&quot; nicht erstellen, um Profilbilder zu speichern.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Fehler beim Kopieren des Profilbildes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Das Bild konnte nicht von &quot;%1&quot; nach &quot;%2&quot; kopiert werden</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation type="unfinished"/>
</message>
@@ -3164,17 +3208,17 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
<translation>Die Systemeinstellungen sind nur verfügbar, wenn kein Spiel aktiv ist.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Dieser Vorgang wird deine momentane &quot;virtuelle Switch&quot; mit einer Neuen ersetzen. Deine momentane &quot;virtuelle Switch&quot; wird nicht wiederherstellbar sein. Dies könnte einige unerwartete Effekte in manchen Spielen mit sich bringen. Zudem könnte der Prozess fehlschlagen, wenn zu alte Daten verwendet werden. Möchtest du den Vorgang fortsetzen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Warnung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>Konsolen ID: 0x%1</translation>
</message>
@@ -3290,54 +3334,54 @@ Ziehe die Punkte mit deiner Maus, um ihre Position zu ändern. Doppelklicke auf
<translation>Punkt löschen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Knopf</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Neues Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Neuen Namen für das Profil eingeben.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Profil löschen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Profil &quot;%1&quot; löschen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Profil umbenennen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Neuer Name:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[Knopf drücken]</translation>
</message>
@@ -3442,7 +3486,7 @@ Ziehe die Punkte mit deiner Maus, um ihre Position zu ändern. Doppelklicke auf
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="39"/>
<source>Title Name</source>
- <translation type="unfinished"/>
+ <translation>Spielname</translation>
</message>
</context>
<context>
@@ -3775,893 +3819,894 @@ Ziehe die Punkte mit deiner Maus, um ihre Position zu ändern. Doppelklicke auf
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonyme Daten werden gesammelt,&lt;/a&gt; um yuzu zu verbessern.&lt;br/&gt;&lt;br/&gt;Möchstest du deine Nutzungsdaten mit uns teilen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetrie</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Lade Web-Applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Deaktiviere die Web Applikation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>Durch deaktivieren des Web-Applets wird es für den Rest der emulierten Sitzung nicht mehr angezeigt. Dies kann zu undefiniertem Verhalten führen und sollte nur mit Super Mario 3D All-Stars verwendet werden. Das Web-Applet wirklich deaktivieren?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>Wie viele Shader im Moment kompiliert werden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Derzeitige Emulations-Geschwindigkeit. Werte höher oder niedriger als 100% zeigen, dass die Emulation scheller oder langsamer läuft als auf einer Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Wie viele Bilder pro Sekunde angezeigt werden variiert von Spiel zu Spiel und von Szene zu Szene. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Zeit, die gebraucht wurde, um einen Switch-Frame zu emulieren, ohne Framelimit oder V-Sync. Für eine Emulation bei voller Geschwindigkeit sollte dieser Wert bei höchstens 16.67ms liegen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>DOCK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Zuletzt geladene Dateien leeren</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Fortsetzen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Warnung veraltetes Spielformat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Du nutzt eine entpackte ROM-Ordnerstruktur für dieses Spiel, welches ein veraltetes Format ist und von anderen Formaten wie NCA, NAX, XCI oder NSP überholt wurde. Entpackte ROM-Ordner unterstützen keine Icons, Metadaten oder Updates.&lt;br&gt;&lt;br&gt;&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;Unser Wiki&lt;/a&gt; enthält eine Erklärung der verschiedenen Formate, die yuzu unterstützt. Diese Nachricht wird nicht noch einmal angezeigt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>ROM konnte nicht geladen werden!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>ROM-Format wird nicht unterstützt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Beim Initialisieren des Video-Kerns ist ein Fehler aufgetreten.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>ROM konnte nicht geladen werden! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Bitte folge der &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu-Schnellstart-Anleitung&lt;/a&gt; um deine Dateien zu extrahieren.&lt;br&gt;Hilfe findest du im yuzu-Wiki&lt;/a&gt; oder dem yuzu-Discord&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Ein unbekannter Fehler ist aufgetreten. Bitte prüfe die Log-Dateien auf mögliche Fehlermeldungen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-Bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-Bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Speicherdaten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Mod-Daten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Konnte Verzeichnis %1 nicht öffnen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Verzeichnis existiert nicht!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Fehler beim Öffnen des transferierbaren Shader-Caches</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Inhalte</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Update</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Eintrag entfernen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Installiertes Spiel %1 entfernen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Erfolgreich entfernt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>Das Spiel wurde entfernt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Fehler beim Entfernen von %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Das Spiel ist nicht im NAND installiert und kann somit nicht entfernt werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Das Update wurde entfernt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Es ist kein Update für diesen Titel installiert.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Es sind keine DLC für diesen Titel installiert.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>%1 DLC entfernt. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Transferierbaren OpenGL Shader Cache löschen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Transferierbaren Vulkan Shader Cache löschen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Alle transferierbaren Shader Caches löschen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Spiel-Einstellungen entfernen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Datei entfernen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Fehler beim Entfernen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>Es existiert kein Shader-Cache für diesen Titel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Der transferierbare Shader-Cache wurde entfernt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Konnte den transferierbaren Shader-Cache nicht entfernen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Fehler beim Entfernen der transferierbaren Shader Caches</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Fehler beim Entfernen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Es existieren keine Spiel-Einstellungen für dieses Spiel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Die Spiel-Einstellungen wurden entfernt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Die Spiel-Einstellungen konnten nicht entfernt werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS-Extraktion fehlgeschlagen!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Das RomFS konnte wegen eines Fehlers oder Abbruchs nicht kopiert werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Komplett</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Nur Ordnerstruktur</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>RomFS Extraktions-Modus auswählen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Bitte wähle, wie das RomFS gespeichert werden soll.&lt;br&gt;&quot;Full&quot; wird alle Dateien des Spiels extrahieren, während &lt;br&gt;&quot;Skeleton&quot; nur die Ordnerstruktur erstellt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>RomFS wird extrahiert...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Abbrechen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS wurde extrahiert!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>Der Vorgang wurde erfolgreich abgeschlossen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Fehler beim Öffnen von %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Verzeichnis auswählen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Einstellungen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Spiel-Einstellungen konnten nicht geladen werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch-Programme (%1);;Alle Dateien (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Datei laden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Öffne das extrahierte ROM-Verzeichnis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Ungültiges Verzeichnis ausgewählt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Das Verzeichnis, das du ausgewählt hast, enthält keine &apos;main&apos;-Datei.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Installierbares Switch-Programm (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submissions Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Dateien installieren</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n Datei verbleibend</numerusform><numerusform>%n Dateien verbleibend</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Datei &quot;%1&quot; wird installiert...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>NAND-Installation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Um Konflikte zu vermeiden, raten wir Nutzern davon ab, Spiele im NAND zu installieren.
Bitte nutze diese Funktion nur zum Installieren von Updates und DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Systemanwendung</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Systemarchiv</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Systemanwendungsupdate</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Firmware-Paket (Typ A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Firmware-Paket (Typ B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Spiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Spiel-Update</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Spiel-DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Delta-Titel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Wähle den NCA-Installationstyp aus...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Bitte wähle, als was diese NCA installiert werden soll:
(In den meisten Fällen sollte die Standardeinstellung &apos;Spiel&apos; ausreichen.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Installation fehlgeschlagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Der Titel-Typ, den du für diese NCA ausgewählt hast, ist ungültig.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Datei nicht gefunden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Datei &quot;%1&quot; nicht gefunden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Fehlender yuzu-Account</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Um einen Kompatibilitätsbericht abzuschicken, musst du einen yuzu-Account mit yuzu verbinden.&lt;br&gt;&lt;br/&gt;Um einen yuzu-Account zu verbinden, prüfe die Einstellungen unter Emulation &amp;gt; Konfiguration &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Fehler beim Öffnen der URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>URL &quot;%1&quot; kann nicht geöffnet werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>TAS Aufnahme</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>Datei von Spieler 1 überschreiben?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Ungültige Konfiguration erkannt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Handheld-Controller können nicht im Dock verwendet werden. Der Pro-Controller wird verwendet.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
- <translation type="unfinished"/>
+ <translation>Fehler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
- <translation type="unfinished"/>
+ <translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo-Datei (%1);; Alle Dateien (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Amiibo laden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Fehler beim Öffnen der Amiibo Datei</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Die Amiibo Datei &quot;%1&quot; konnte nicht zum Lesen geöffnet werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Fehler beim Lesen der Amiibo-Daten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Amiibo-Daten können nicht vollständig gelesen werden. Es wurde erwartet, dass %1 Bytes gelesen werden, es konnten aber nur %2 Bytes gelesen werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Fehler beim Laden der Amiibo-Daten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Amiibo-Daten konnten nicht geladen werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Screenshot aufnehmen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG Bild (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS Zustand: Läuft %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>TAS Zustand: Aufnahme %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>TAS Zustand: Ungültig</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
- <translation type="unfinished"/>
+ <translation>Skalierung: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Geschwindigkeit: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Geschwindigkeit: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Spiel: %1 FPS (Unbegrenzt)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Spiel: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Frame: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU HOCH</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EXTREM</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>GPU FEHLER</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
- <translation type="unfinished"/>
+ <translation>NÄCHSTER</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
- <translation type="unfinished"/>
+ <translation>BILINEAR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
- <translation type="unfinished"/>
+ <translation>BIKUBISCH</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
- <translation type="unfinished"/>
+ <translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
- <translation type="unfinished"/>
+ <translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
- <translation type="unfinished"/>
+ <translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Das Spiel, dass du versuchst zu spielen, benötigt bestimmte Dateien von deiner Switch-Konsole.&lt;br/&gt;&lt;br/&gt;Um Informationen darüber zu erhalten, wie du diese Dateien von deiner Switch extrahieren kannst, prüfe bitte die folgenden Wiki-Seiten: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;System-Archive und Shared Fonts von einer Switch-Konsole extrahieren&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Willst du zur Spiele-Liste zurückkehren und die Emulation beenden? Das Fortsetzen der Emulation könnte zu Spielfehlern, Abstürzen, beschädigten Speicherdaten und anderen Fehlern führen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu konnte ein Switch Systemarchiv nicht finden. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu konnte ein Switch Systemarchiv nicht finden: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Systemarchiv nicht gefunden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Systemarchiv fehlt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu konnte die Switch Shared Fonts nicht finden. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Shared Fonts nicht gefunden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Shared Font fehlt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Schwerwiegender Fehler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Ein schwerwiegender Fehler ist aufgetreten, bitte prüfe die Log-Dateien auf mögliche Fehlermeldungen. Weitere Informationen: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Wie kann ich eine Log-Datei hochladen&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Willst du zur Spiele-Liste zurückkehren und die Emulation beenden? Das Fortsetzen der Emulation könnte zu Spielfehlern, Abstürzen, beschädigten Speicherdaten und anderen Fehlern führen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Fataler Fehler aufgetreten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Schlüsselableitung bestätigen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4674,37 +4719,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
Dieser Prozess wird die generierten Schlüsseldateien löschen und die Schlüsselableitung neu starten.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Fuses fehlen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation> - BOOT0 fehlt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - BCPKG2-1-Normal-Main fehlt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation> - PRODINFO fehlt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Derivationskomponenten fehlen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4712,39 +4757,39 @@ on your system&apos;s performance.</source>
Dies könnte, je nach Leistung deines Systems, bis zu einer Minute dauern.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Schlüsselableitung</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>RomFS wählen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Wähle, welches RomFS du speichern möchtest.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Bist du sicher, dass du yuzu beenden willst?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Bist du sicher, dass du die Emulation stoppen willst? Jeder nicht gespeicherte Fortschritt geht verloren.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4756,38 +4801,38 @@ Möchtest du dies umgehen und sie trotzdem beenden?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL nicht verfügbar!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu wurde nicht mit OpenGL-Unterstützung kompiliert.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Fehler beim Initialisieren von OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Deine Grafikkarte unterstützt kein OpenGL oder du hast nicht den neusten Treiber installiert.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Fehler beim Initialisieren von OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Deine Grafikkarte unterstützt OpenGL 4.6 nicht, oder du benutzt nicht die neuste Treiberversion.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Deine Grafikkarte unterstützt anscheinend nicht eine oder mehrere von yuzu benötigten OpenGL-Erweiterungen. Bitte stelle sicher, dass du den neusten Grafiktreiber installiert hast.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Nicht unterstützte Erweiterungen:&lt;br&gt;%2</translation>
</message>
@@ -4949,79 +4994,79 @@ Möchtest du dies umgehen und sie trotzdem beenden?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfekt</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Das Spiel funktioniert fehlerfrei, ohne Audio- oder Grafikfehler, und sämtliche getestete Funktionalität funktioniert wie vorhergesehen ohne Workarounds.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Gut</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Das Spiel funktioniert mit kleineren Audio- oder Grafikfehlern und lässt sich bis zum Ende durchspielen.
Eventuell sind einige Workarounds notwendig.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Okay</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>Das Spiel funktioniert mit größern Audio- oder Grafikfehlern,
lässt sich aber mit Workarounds bis zum Ende durchspielen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Schlecht</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Spiel funktioniert zwar, aber nur mit starken Audio- oder Grafikfehlern. Manche Bereiche des Spiels können selbst mit Workarounds nicht abgeschlossen werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/Menü</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>Das Spiel ist wegen schwerwiegenden Audio- oder Grafikfehlern unspielbar. Das Spiel lässt sich lediglich starten.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Startet nicht</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>Das Spiel stürzt beim Versuch zu starten ab.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Nicht getestet</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Spiel wurde noch nicht getestet.</translation>
</message>
@@ -5039,7 +5084,7 @@ Screen.</source>
<message numerus="yes">
<location filename="../../src/yuzu/game_list.cpp" line="87"/>
<source>%1 of %n result(s)</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%1 von %n Ergebnis</numerusform><numerusform>%1 von %n Ergebnisse</numerusform></translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="130"/>
@@ -5055,22 +5100,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Bitte bestätige, dass du diese Dateien installieren willst.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Wenn du ein Update oder DLC installierst, wirst du die vorher installierten überschreiben.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Installieren</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Dateien im NAND installieren</translation>
</message>
@@ -5102,22 +5147,22 @@ Screen.</source>
<translation>Geschätzte Zeit: 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Lädt...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Shader %1 / %2 wird geladen...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Starten...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Geschätzte Zeit: %1</translation>
</message>
@@ -5197,7 +5242,7 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/main.ui" line="129"/>
<source>&amp;TAS</source>
- <translation type="unfinished"/>
+ <translation>&amp;TAS</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="144"/>
@@ -5287,7 +5332,7 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/main.ui" line="269"/>
<source>Load/Remove &amp;Amiibo...</source>
- <translation type="unfinished"/>
+ <translation>&amp;Amiibo laden/entfernen...</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="277"/>
@@ -5337,7 +5382,7 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/main.ui" line="337"/>
<source>&amp;Reset</source>
- <translation type="unfinished"/>
+ <translation>&amp;Zurücksetzen</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="345"/>
@@ -5397,284 +5442,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Installierte SD-Titel</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Installierte NAND-Titel</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Systemtitel</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Neues Spieleverzeichnis hinzufügen</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>Favoriten</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Strg</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[nicht gesetzt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Hat %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Achse %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Taste %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[unbekannt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Links</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Rechts</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Runter</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Hoch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
- <translation type="unfinished"/>
+ <translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
- <translation type="unfinished"/>
+ <translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
- <translation type="unfinished"/>
+ <translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
- <translation type="unfinished"/>
+ <translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
- <translation type="unfinished"/>
+ <translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
- <translation type="unfinished"/>
+ <translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
- <translation type="unfinished"/>
+ <translation>Kreis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
- <translation type="unfinished"/>
+ <translation>Kreuz</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
- <translation type="unfinished"/>
+ <translation>Quadrat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
- <translation type="unfinished"/>
+ <translation>Dreieck</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
- <translation type="unfinished"/>
+ <translation>Teilen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
- <translation type="unfinished"/>
+ <translation>Optionen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Touch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
- <translation type="unfinished"/>
+ <translation>Mausrad</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
- <translation type="unfinished"/>
+ <translation>Rückwärts</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
- <translation type="unfinished"/>
+ <translation>Vorwärts</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
- <translation type="unfinished"/>
+ <translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
- <translation type="unfinished"/>
+ <translation>%1%2%3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
- <translation type="unfinished"/>
+ <translation>[ungültig]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
- <translation type="unfinished"/>
+ <translation>%1%2Achse %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
- <translation type="unfinished"/>
+ <translation>%1%2Achse %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
- <translation type="unfinished"/>
+ <translation>%1%2Bewegung %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
- <translation type="unfinished"/>
+ <translation>%1%2Knopf %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[unbenutzt]</translation>
</message>
@@ -5715,7 +5760,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro-Controller</translation>
</message>
@@ -5728,7 +5773,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Zwei Joycons</translation>
</message>
@@ -5741,7 +5786,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Linker Joycon</translation>
</message>
@@ -5754,7 +5799,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Rechter Joycon</translation>
</message>
@@ -5782,7 +5827,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
@@ -5903,34 +5948,34 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>GameCube-Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
- <translation type="unfinished"/>
+ <translation>Poke-Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
- <translation type="unfinished"/>
+ <translation>NES Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
- <translation type="unfinished"/>
+ <translation>SNES Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
- <translation type="unfinished"/>
+ <translation>N64 Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
- <translation type="unfinished"/>
+ <translation>Sega Genesis</translation>
</message>
</context>
<context>
@@ -5973,7 +6018,7 @@ Bitte versuche es noch einmal oder kontaktiere den Entwickler der Software.</tra
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5981,17 +6026,17 @@ Bitte versuche es noch einmal oder kontaktiere den Entwickler der Software.</tra
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Wähle einen Benutzer aus:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Nutzer</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Profilauswahl</translation>
</message>
@@ -6044,7 +6089,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Stack aufrufen</translation>
</message>
@@ -6052,17 +6097,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>Warten auf Mutex 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>has waiters: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>owner handle: 0x%1</translation>
</message>
@@ -6070,12 +6115,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>Warten auf alle Objekte</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>Warten auf eines der folgenden Objekte</translation>
</message>
@@ -6083,12 +6128,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>von keinem Thread pausiert</translation>
</message>
@@ -6096,112 +6141,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>lauffähig</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>pausiert</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>schläft</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>Warten auf IPC-Antwort</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>Warten auf Objekte</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>wartet auf condition variable</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>Warten auf den Adressarbiter</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>warten auf Fortsetzen nach Unterbrechung</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>warten</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>initialisiert</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>beendet</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>unbekannt</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation>PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideal</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>Kern %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>Prozessor = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>ideal core = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>Affinitätsmaske = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>Thread-ID = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>Priorität = %1(aktuell) / %2(normal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>Letzte laufende Ticks = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>nicht auf Mutex warten</translation>
</message>
@@ -6209,7 +6254,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>gewartet von Thread</translation>
</message>
@@ -6217,7 +6262,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>&amp;Wait Tree</translation>
</message>
diff --git a/dist/languages/el.ts b/dist/languages/el.ts
new file mode 100644
index 000000000..91d3aea01
--- /dev/null
+++ b/dist/languages/el.ts
@@ -0,0 +1,6261 @@
+<?xml version="1.0" ?><!DOCTYPE TS><TS version="2.1" language="el" sourcelanguage="en_US">
+<context>
+ <name>AboutDialog</name>
+ <message>
+ <location filename="../../src/yuzu/aboutdialog.ui" line="14"/>
+ <source>About yuzu</source>
+ <translation>Σχετικά με το yuzu</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/aboutdialog.ui" line="30"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;img src=&quot;:/icons/yuzu.png&quot;/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;img src=&quot;:/icons/yuzu.png&quot;/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/aboutdialog.ui" line="60"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:28pt;&quot;&gt;yuzu&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:28pt;&quot;&gt;yuzu&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/aboutdialog.ui" line="73"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;%1 (%2)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;%1 (%2)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/aboutdialog.ui" line="86"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:12pt;&quot;&gt;yuzu is an experimental open-source emulator for the Nintendo Switch licensed under GPLv2.0.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;This software should not be used to play games you have not legally obtained.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Ubuntu&apos;; font-size:11pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;Ο yuzu είναι ένας πειραματικός εξομοιωτής ανοιχτού κώδικα για το Nintendo Switch υπό την άδεια GPLv2.0.&lt;/span&gt;&lt;/p&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
+&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:12pt;&quot;&gt;Το λογισμικό αυτό δεν πρέπει να χρησιμοποιείται για να παίξετε παιχνίδια τα οποία δεν έχετε αποκτήσει νόμιμα.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/aboutdialog.ui" line="118"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://yuzu-emu.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Website&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Source Code&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/graphs/contributors&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Contributors&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/blob/master/license.txt&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;License&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://yuzu-emu.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Ιστοσελίδα&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Πηγαίος Κώδικας&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/graphs/contributors&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Συνεργάτες&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/blob/master/license.txt&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Άδεια&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/aboutdialog.ui" line="134"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;&amp;quot;Nintendo Switch&amp;quot; is a trademark of Nintendo. yuzu is not affiliated with Nintendo in any way.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:7pt;&quot;&gt;Το &amp;quot;Nintendo Switch&amp;quot; είναι ένα εμπορικό σήμα της Nintendo. Ο yuzu δε συνδέεται με την Nintendo με κανέναν τρόπο.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+</context>
+<context>
+ <name>CalibrationConfigurationDialog</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
+ <source>Communicating with the server...</source>
+ <translation>Επικοινωνία με τον διακομιστή...</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
+ <source>Cancel</source>
+ <translation>Άκυρο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
+ <source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
+ <translation>Αγγίξτε την πάνω αριστερή γωνία &lt;br&gt;του touchpad σας.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
+ <source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
+ <translation>Τώρα αγγίξτε την κάτω δεξιά γωνία &lt;br&gt;του touchpad σας.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
+ <source>Configuration completed!</source>
+ <translation>Η διαμόρφωση ολοκληρώθηκε!</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+</context>
+<context>
+ <name>CompatDB</name>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="20"/>
+ <source>Report Compatibility</source>
+ <translation>Αναφέρετε Συμβατότητα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="27"/>
+ <location filename="../../src/yuzu/compatdb.ui" line="63"/>
+ <source>Report Game Compatibility</source>
+ <translation>Αναφέρετε Συμβατότητα Παιχνιδιού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="36"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Should you choose to submit a test case to the &lt;/span&gt;&lt;a href=&quot;https://yuzu-emu.org/game/&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;yuzu Compatibility List&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;, The following information will be collected and displayed on the site:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Hardware Information (CPU / GPU / Operating System)&lt;/li&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Which version of yuzu you are running&lt;/li&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;The connected yuzu account&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;Αν επιλέξετε να υποβάλλετε μια υπόθεση για τεστ στη &lt;/span&gt;&lt;a href=&quot;https://yuzu-emu.org/game/&quot;&gt;&lt;span style=&quot; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;Λίστα Συμβατότητας του yuzu&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot; font-size:10pt;&quot;&gt;, Οι ακόλουθες πληροφορίες θα μαζευτούν και θα προβληθούν στο site:&lt;/span&gt;&lt;/p&gt;&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Πληροφορίες Υλικού (CPU / GPU / Λειτουργικό Σύστημα)&lt;/li&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Ποιά έκδοση του yuzu τρέχετε &lt;/li&gt;&lt;li style=&quot; margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Τον συνδεδεμένο λογαριασμό yuzu&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="72"/>
+ <source>Perfect</source>
+ <translation>Άψογα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="79"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Game functions flawlessly with no audio or graphical glitches.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Το παιχνίδι λειτουργεί αλάνθαστα χωρίς ακουστικά ή γραφικά σφάλματα.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="89"/>
+ <source>Great </source>
+ <translation>Τέλεια</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="96"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Game functions with minor graphical or audio glitches and is playable from start to finish. May require some workarounds.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Το παιχνίδι λειτουργεί με σημαντικά γραφικά ή ακουστικά σφάλματα, και μπορεί να παιχτεί από την αρχή μέχρι το τέλος. Ίσως χρειάζεται μερικές μικροδιορθώσεις.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="106"/>
+ <source>Okay</source>
+ <translation>Εντάξει</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="113"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Game functions with major graphical or audio glitches, but game is playable from start to finish with workarounds.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Το παιχνίδι λειτουργεί με σημαντικά γραφικά ή ακουστικά σφάλματα, αλλά το παιχνίδι μπορεί να παιχτεί από την αρχή μέχρι το τέλος με μικροδιορθώσεις.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="123"/>
+ <source>Bad</source>
+ <translation>Άσχημα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="130"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches even with workarounds.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Το παιχνίδι λειτουργεί, αλλά με σημαντικά γραφικά ή ακουστικά σφάλματα. Αδύνατο να προχωρήσει σε συγκεκριμένες περιοχές λόγω σφαλμάτων ακόμα και με μικροδιορθώσεις.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="140"/>
+ <source>Intro/Menu</source>
+ <translation>Εισαγωγή/Μενού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="147"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start Screen.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Το παιχνίδι δεν μπορεί να παιχτεί λόγω σημαντικών γραφικών ή ακουστικών σφαλμάτων. Αδύνατον να προχωρήσει μετά την Αρχική Οθόνη&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="157"/>
+ <source>Won&apos;t Boot</source>
+ <translation>Δεν ξεκινά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="170"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The game crashes when attempting to startup.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Το παιχνίδι καταρρέει όταν προσπαθεί να ξεκινήσει.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="182"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Independent of speed or performance, how well does this game play from start to finish on this version of yuzu?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Ανεξάρτητα από την ταχύτητα ή την απόδοση, πόσο καλά παίζει αυτό το παιχνίδι από την αρχή μέχρι το τέλος σε αυτή την έκδοση του yuzu?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.ui" line="206"/>
+ <source>Thank you for your submission!</source>
+ <translation>Ευχαριστούμε για την συμμετοχή!</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.cpp" line="59"/>
+ <source>Submitting</source>
+ <translation>Υποβάλλεται</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.cpp" line="72"/>
+ <source>Communication error</source>
+ <translation>Σφάλμα επικοινωνίας</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.cpp" line="73"/>
+ <source>An error occurred while sending the Testcase</source>
+ <translation>Προέκυψε ένα σφάλμα κατά την αποστολή της Υπόθεσης Τεστ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/compatdb.cpp" line="75"/>
+ <source>Next</source>
+ <translation>Επόμενο</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureAudio</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_audio.ui" line="14"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.ui" line="20"/>
+ <source>Audio</source>
+ <translation>Ήχος</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_audio.ui" line="28"/>
+ <source>Output Engine:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_audio.ui" line="42"/>
+ <source>Audio Device:</source>
+ <translation>Συσκευή Ήχου:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_audio.ui" line="70"/>
+ <source>Use global volume</source>
+ <translation>Χρήση καθολικής έντασης ήχου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_audio.ui" line="75"/>
+ <source>Set volume:</source>
+ <translation>Ένταση ήχου:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_audio.ui" line="83"/>
+ <source>Volume:</source>
+ <translation>Ένταση:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_audio.ui" line="128"/>
+ <source>0 %</source>
+ <translation>0 %</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
+ <source>%1%</source>
+ <comment>Volume percentage (e.g. 50%)</comment>
+ <translation>%1%</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureCpu</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="17"/>
+ <source>CPU</source>
+ <translation>CPU</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="25"/>
+ <source>General</source>
+ <translation>Γενικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="34"/>
+ <source>Accuracy:</source>
+ <translation>Ακρίβεια:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="42"/>
+ <source>Auto</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="47"/>
+ <source>Accurate</source>
+ <translation>Ακριβής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="52"/>
+ <source>Unsafe</source>
+ <translation>Επισφαλής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="63"/>
+ <source>We recommend setting accuracy to &quot;Auto&quot;.</source>
+ <translation>Συνιστούμε να ορίσετε την ακρίβεια σε &quot;Αυτόματο&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="80"/>
+ <source>Unsafe CPU Optimization Settings</source>
+ <translation>Επισφαλείς Ρυθμίσεις Βελτιστοποίησης CPU</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="86"/>
+ <source>These settings reduce accuracy for speed.</source>
+ <translation>Οι ρυθμίσεις αυτές μειώνουν την ακρίβεια για ταχύτητα.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="96"/>
+ <source>
+ &lt;div&gt;This option improves speed by reducing accuracy of fused-multiply-add instructions on CPUs without native FMA support.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Αυτή η επιλογή βελτιώνει την ταχύτητα μειώνοντας την ακρίβεια των εντολών συγχωνευμένης-πολλαπλασιάζουσας-προσθήκης σε CPU χωρίς εγγενή υποστήριξη FMA.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="101"/>
+ <source>Unfuse FMA (improve performance on CPUs without FMA)</source>
+ <translation>Αχρησιμοποίητο FMA (βελτιώνει την απόδοση σε επεξεργαστές χωρίς FMA)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="108"/>
+ <source>
+ &lt;div&gt;This option improves the speed of some approximate floating-point functions by using less accurate native approximations.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Η επιλογή αυτή βελτιώνει την ταχύτητα ορισμένων συναρτήσεων κινητής υποδιαστολής χρησιμοποιώντας λιγότερο ακριβείς τοπικές προσεγγίσεις.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="113"/>
+ <source>Faster FRSQRTE and FRECPE</source>
+ <translation>Ταχύτερη FRSQRTE και FRECPE</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="120"/>
+ <source>
+ &lt;div&gt;This option improves the speed of 32 bits ASIMD floating-point functions by running with incorrect rounding modes.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Αυτή η επιλογή βελτιώνει την ταχύτητα των συναρτήσεων κινητής υποδιαστολής ASIMD 32 bits εκτελώντας εσφαλμένες λειτουργίες στρογγυλοποίησης.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="125"/>
+ <source>Faster ASIMD instructions (32 bits only)</source>
+ <translation>Ταχύτερες οδηγίες ASIMD (μόνο 32 bits)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="132"/>
+ <source>
+ &lt;div&gt;This option improves speed by removing NaN checking. Please note this also reduces accuracy of certain floating-point instructions.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Αυτή η επιλογή βελτιώνει την ταχύτητα καταργώντας τον έλεγχο NaN. Λάβετε υπόψη ότι αυτό μειώνει επίσης την ακρίβεια ορισμένων εντολών κινητής υποδιαστολής.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="137"/>
+ <source>Inaccurate NaN handling</source>
+ <translation>Ανακριβής χειρισμός NaN</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="144"/>
+ <source>
+ &lt;div&gt;This option improves speed by eliminating a safety check before every memory read/write in guest. Disabling it may allow a game to read/write the emulator's memory.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Αυτή η επιλογή βελτιώνει την ταχύτητα εξαλείφοντας τον έλεγχο ασφαλείας πριν από κάθε ανάγνωση/εγγραφή μνήμης. Η απενεργοποίησή του μπορεί να επιτρέψει σε ένα παιχνίδι να διαβάσει/γράψει στη μνήμη του εξομοιωτή.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="149"/>
+ <source>Disable address space checks</source>
+ <translation>Απενεργοποίηση ελέγχου χώρου διευθύνσεων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Αυτή η επιλογή βελτιώνει την ταχύτητα βασιζόμενη μόνο στη σημασιολογία του cmpxchg για να διασφαλίσει την ασφάλεια των αποκλειστικών οδηγιών πρόσβασης. Λάβετε υπόψη ότι αυτό μπορεί να οδηγήσει σε αδιέξοδα και άλλες ασυνήθιστες συνθήκες.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation>Αγνοήση καθολικής επίβλεψης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
+ <source>CPU settings are available only when game is not running.</source>
+ <translation>Οι επιλογές επεξεργαστή είναι διαθέσιμες μόνο όταν δεν εκτελείται ένα παιχνίδι.</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureCpuDebug</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="17"/>
+ <source>CPU</source>
+ <translation>CPU</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="25"/>
+ <source>Toggle CPU Optimizations</source>
+ <translation>Εναλλαγή Βελτιστοποιήσεων CPU</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="31"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;For debugging only.&lt;/span&gt;&lt;br/&gt;If you&apos;re not sure what these do, keep all of these enabled. &lt;br/&gt;These settings, when disabled, only take effect when CPU Debugging is enabled. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Μόνο για διόρθωση σφαλμάτων.&lt;/span&gt;&lt;br/&gt;Εάν δεν είστε σίγουροι για την χρησιμότητά τους, κρατήστε τα όλα ενεργοποιημένα. &lt;br/&gt;Αυτές οι ρυθμίσεις, όταν είναι απενεργοποιημένες, ισχύουν μόνο όταν είναι ενεργοποιημένος ο Εντοπισμός Σφαλμάτων CPU. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="41"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it inlines accesses to PageTable::pointers into emitted code.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all memory accesses to go through the Memory::Read/Memory::Write functions.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Αυτή η βελτιστοποίηση επιταχύνει την πρόσβαση στη μνήμη από το φιλοξενούμενο πρόγραμμα.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Η ενεργοποίησή αυτή ενσωματώνει την πρόσβαση PageTable::pointers στον εκπεμπόμενο κώδικα.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Η απενεργοποίηση αυτή αναγκάζει όλες τις προσβάσεις στη μνήμη να διέλθουν μέσα από τη μέθοδο Memory::Read/Memory::Write.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="48"/>
+ <source>Enable inline page tables</source>
+ <translation>Ενεργοποίηση ενσωματωμένων πινάκων σελίδων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="55"/>
+ <source>
+ &lt;div&gt;This optimization avoids dispatcher lookups by allowing emitted basic blocks to jump directly to other basic blocks if the destination PC is static.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Αυτή η βελτιστοποίηση αποφεύγει τις αναζητήσεις αποστολέα επιτρέποντας στα εκπεμπόμενα βασικά μπλοκ να μεταπηδούν απευθείας σε άλλα βασικά μπλοκ, εάν το PC προορισμού είναι στατικό.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="60"/>
+ <source>Enable block linking</source>
+ <translation>Ενεργοποίηση σύνδεσης μπλοκ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="67"/>
+ <source>
+ &lt;div&gt;This optimization avoids dispatcher lookups by keeping track potential return addresses of BL instructions. This approximates what happens with a return stack buffer on a real CPU.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Αυτή η βελτιστοποίηση αποφεύγει τις αναζητήσεις αποστολέα παρακολουθώντας τις πιθανές διευθύνσεις επιστροφής των οδηγιών BL. Αυτό προσεγγίζει το τι συμβαίνει με ένα buffer στοίβας επιστροφής σε μια πραγματική CPU.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="72"/>
+ <source>Enable return stack buffer</source>
+ <translation>Ενεργοποίηση προσωρινής αποθήκευσης στοίβας επιστροφής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="79"/>
+ <source>
+ &lt;div&gt;Enable a two-tiered dispatch system. A faster dispatcher written in assembly has a small MRU cache of jump destinations is used first. If that fails, dispatch falls back to the slower C++ dispatcher.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Ενεργοποιεί ένα σύστημα αποστολής δύο επιπέδων. Ένας ταχύτερος διεκπεραιωτής γραμμένος σε γλώσσα μηχανής που έχει μια μικρή κρυφή μνήμη MRU προορισμών μετάβασης χρησιμοποιείται πρώτα. Εάν αυτό αποτύχει, η αποστολή επιστρέφει στον πιο αργό C++ αποστολέα.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="84"/>
+ <source>Enable fast dispatcher</source>
+ <translation>Ενεργοποίηση γρήγορης αποστολής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="91"/>
+ <source>
+ &lt;div&gt;Enables an IR optimization that reduces unnecessary accesses to the CPU context structure.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Ενεργοποιεί μια βελτιστοποίηση IR που μειώνει τις περιττές προσβάσεις στη δομή περιβάλλοντος της CPU.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="96"/>
+ <source>Enable context elimination</source>
+ <translation>Ενεργοποίηση εξάλειψης περιβάλλοντος</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="103"/>
+ <source>
+ &lt;div&gt;Enables IR optimizations that involve constant propagation.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Ενεργοποιεί βελτιστοποιήσεις IR που περιλαμβάνουν συνεχή διάδοση.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="108"/>
+ <source>Enable constant propagation</source>
+ <translation>Ενεργοποίηση συνεχούς διάδοσης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="115"/>
+ <source>
+ &lt;div&gt;Enables miscellaneous IR optimizations.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Ενεργοποιεί διάφορες βελτιστοποιήσεις IR.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="120"/>
+ <source>Enable miscellaneous optimizations</source>
+ <translation>Ενεργοποίηση διάφορων βελτιστοποιήσεων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="127"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;When enabled, a misalignment is only triggered when an access crosses a page boundary.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;When disabled, a misalignment is triggered on all misaligned accesses.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Όταν είναι ενεργοποιημένη, μια κακή ευθυγράμμιση ενεργοποιείται μόνο όταν η πρόσβαση υπερβαίνει το όριο σελίδας.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Όταν είναι απενεργοποιημένη, ενεργοποιείται μια εσφαλμένη ευθυγράμμιση σε όλες τις μη ευθυγραμμισμένες προσβάσεις.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="133"/>
+ <source>Enable misalignment check reduction</source>
+ <translation>Ενεργοποίηση μείωσης ελέγχου λανθασμένης ευθυγράμμισης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="140"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Αυτή η βελτιστοποίηση επιταχύνει τις αποκλειστικές προσβάσεις στη μνήμη από το πρόγραμμα φιλοξενουμένων.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Η ενεργοποίησή του μειώνει την επιβάρυνση της αποτυχίας fastmem των αποκλειστικών προσβάσεων στη μνήμη.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation>Ενεργοποιήστε την εκ νέου μεταγλώττιση οδηγιών αποκλειστικής μνήμης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
+ <source>CPU settings are available only when game is not running.</source>
+ <translation>Οι επιλογές επεξεργαστή είναι διαθέσιμες μόνο όταν δεν εκτελείται ένα παιχνίδι.</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureDebug</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="9"/>
+ <source>Logging</source>
+ <translation>Καταγραφή Συμβάντων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="17"/>
+ <source>Global Log Filter</source>
+ <translation>Παγκόσμιο φίλτρο αρχείου καταγραφής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="29"/>
+ <source>Show Log in Console</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="36"/>
+ <source>Open Log Location</source>
+ <translation>Άνοιγμα θέσης του αρχείου καταγραφής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="46"/>
+ <source>When checked, the max size of the log increases from 100 MB to 1 GB</source>
+ <translation>Όταν επιλεγεί, το μέγιστο μέγεθος του αρχείου καταγραφής αυξάνεται από 100 MB σε 1 GB</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="49"/>
+ <source>Enable Extended Logging**</source>
+ <translation>Ενεργοποίηση Εκτεταμένης Καταγραφής**</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="59"/>
+ <source>Homebrew</source>
+ <translation>Σπιτικό</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="67"/>
+ <source>Arguments String</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="82"/>
+ <source>Graphics</source>
+ <translation>Γραφικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="91"/>
+ <source>When checked, the graphics API enters a slower debugging mode</source>
+ <translation>Όταν είναι επιλεγμένο, το API γραφικών εισέρχεται σε μια πιο αργή λειτουργία εντοπισμού σφαλμάτων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="94"/>
+ <source>Enable Graphics Debugging</source>
+ <translation>Ενεργοποίηση του Εντοπισμού Σφαλμάτων Γραφικών</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="101"/>
+ <source>When checked, it enables Nsight Aftermath crash dumps</source>
+ <translation>Όταν είναι επιλεγμένο, ενεργοποιεί την ένδειξη σφαλμάτων Nsight Aftermath</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="104"/>
+ <source>Enable Nsight Aftermath</source>
+ <translation>Ενεργοποίηση του Nsight Aftermath</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="114"/>
+ <source>When checked, it will dump all the original assembler shaders from the disk shader cache or game as found</source>
+ <translation>Όταν επιλεγεί, θα απορρίψει όλους τους αρχικούς assembler shaders από την κρυφή μνήμη ή το παιχνίδι σκίασης δίσκου όπως βρέθηκε</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="117"/>
+ <source>Dump Game Shaders</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="127"/>
+ <source>When checked, it disables the macro Just In Time compiler. Enabling this makes games run slower</source>
+ <translation>Όταν είναι επιλεγμένο, απενεργοποιεί τη μακροεντολή Just In Time compiler. Η ενεργοποίηση αυτού κάνει τα παιχνίδια να τρέχουν πιο αργά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="130"/>
+ <source>Disable Macro JIT</source>
+ <translation>Απενεργοποίηση του Macro JIT</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="137"/>
+ <source>When checked, yuzu will log statistics about the compiled pipeline cache</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="140"/>
+ <source>Enable Shader Feedback</source>
+ <translation>Ενεργοποίηση Shader Feedback</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="147"/>
+ <source>When checked, it executes shaders without loop logic changes</source>
+ <translation>Όταν είναι επιλεγμένο, εκτελεί shaders χωρίς αλλαγές στη λογική του βρόχου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="150"/>
+ <source>Disable Loop safety checks</source>
+ <translation>Απενεργοποίηση των ελέγχων ασφαλείας βρόχου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="160"/>
+ <source>Debugging</source>
+ <translation>Εντοπισμός Σφαλμάτων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="166"/>
+ <source>Enable FS Access Log</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="173"/>
+ <source>Enable Verbose Reporting Services**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="183"/>
+ <source>Advanced</source>
+ <translation>Προχωρημένα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="189"/>
+ <source>Kiosk (Quest) Mode</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="196"/>
+ <source>Enable CPU Debugging</source>
+ <translation>Ενεργοποίηση Εντοπισμού Σφαλμάτων CPU</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="203"/>
+ <source>Enable Debug Asserts</source>
+ <translation>Ενεργοποίηση Βεβαιώσεων Εντοπισμού Σφαλμάτων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="210"/>
+ <source>Enable Auto-Stub**</source>
+ <translation>Ενεργοποίηση Auto-Stub**</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="217"/>
+ <source>Enable all Controller Types</source>
+ <translation>Ενεργοποίηση όλων των Τύπων Χειριστηρίου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
+ <source>**This will be reset automatically when yuzu closes.</source>
+ <translation>**Αυτό θα μηδενιστεί αυτόματα όταν το yuzu κλείσει.</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureDebugController</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug_controller.ui" line="14"/>
+ <source>Configure Debug Controller</source>
+ <translation>Διαμόρφωση Ελεγκτή Εντοπισμού Σφαλμάτων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug_controller.ui" line="40"/>
+ <source>Clear</source>
+ <translation>Καθαρισμός</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug_controller.ui" line="47"/>
+ <source>Defaults</source>
+ <translation>Προκαθορισμένα</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureDebugTab</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug_tab.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug_tab.ui" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_debug_tab.cpp" line="17"/>
+ <source>Debug</source>
+ <translation>Αποσφαλμάτωση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug_tab.cpp" line="18"/>
+ <source>CPU</source>
+ <translation>CPU</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureDialog</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure.ui" line="20"/>
+ <source>yuzu Configuration</source>
+ <translation>Διαμόρφωση yuzu</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <source>Audio</source>
+ <translation>Ήχος</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
+ <source>CPU</source>
+ <translation>CPU</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
+ <source>Debug</source>
+ <translation>Αποσφαλμάτωση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <source>Filesystem</source>
+ <translation>Σύστημα Αρχείων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
+ <source>General</source>
+ <translation>Γενικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <source>Graphics</source>
+ <translation>Γραφικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
+ <source>GraphicsAdvanced</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <source>Hotkeys</source>
+ <translation>Πλήκτρα Συντόμευσης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <source>Controls</source>
+ <translation>Χειρισμός</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <source>Profiles</source>
+ <translation>Τα προφίλ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <source>Network</source>
+ <translation>Δίκτυο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
+ <source>System</source>
+ <translation>Σύστημα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <source>Game List</source>
+ <translation>Λίστα Παιχνιδιών</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <source>Web</source>
+ <translation>Ιστός</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureFilesystem</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="17"/>
+ <source>Filesystem</source>
+ <translation>Σύστημα Αρχείων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="25"/>
+ <source>Storage Directories</source>
+ <translation>Κατάλογοι Αποθήκευσης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="31"/>
+ <source>NAND</source>
+ <translation>NAND</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="38"/>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="143"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="51"/>
+ <source>SD Card</source>
+ <translation>Κάρτα SD</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="84"/>
+ <source>Gamecard</source>
+ <translation>Κάρτα Παιχνιδιού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="90"/>
+ <source>Path</source>
+ <translation>Μονοπάτι</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="100"/>
+ <source>Inserted</source>
+ <translation>Εισηγμένο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="107"/>
+ <source>Current Game</source>
+ <translation>Τρέχων Παιχνίδι</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="124"/>
+ <source>Patch Manager</source>
+ <translation>Διαχειριστής Ενημερώσεων Κώδικα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="152"/>
+ <source>Dump Decompressed NSOs</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="159"/>
+ <source>Dump ExeFS</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="168"/>
+ <source>Mod Load Root</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="175"/>
+ <source>Dump Root</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="201"/>
+ <source>Caching</source>
+ <translation>Προσωρινή Αποθήκευση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="209"/>
+ <source>Cache Game List Metadata</source>
+ <translation>Αποθήκευση Μεταδεδομένων Λίστας Παιχνιδιών</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.ui" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.cpp" line="141"/>
+ <source>Reset Metadata Cache</source>
+ <translation>Επαναφορά Προσωρινής Μνήμης Μεταδεδομένων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.cpp" line="94"/>
+ <source>Select Emulated NAND Directory...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.cpp" line="97"/>
+ <source>Select Emulated SD Directory...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.cpp" line="100"/>
+ <source>Select Gamecard Path...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.cpp" line="103"/>
+ <source>Select Dump Directory...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.cpp" line="106"/>
+ <source>Select Mod Load Directory...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.cpp" line="133"/>
+ <source>The metadata cache is already empty.</source>
+ <translation>Η προσωρινή μνήμη μεταδεδομένων είναι ήδη άδεια.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.cpp" line="137"/>
+ <source>The operation completed successfully.</source>
+ <translation>Η επέμβαση ολοκληρώθηκε με επιτυχία.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_filesystem.cpp" line="142"/>
+ <source>The metadata cache couldn&apos;t be deleted. It might be in use or non-existent.</source>
+ <translation>Δεν ήταν δυνατή η διαγραφή της προσωρινής μνήμης μεταδεδομένων. Μπορεί να χρησιμοποιείται ή να μην υπάρχει.</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureGeneral</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="25"/>
+ <source>General</source>
+ <translation>Γενικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="50"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="57"/>
+ <source>Use global framerate cap</source>
+ <translation>Χρήση καθολικού ορίου για ρυθμό καρέ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="62"/>
+ <source>Set framerate cap:</source>
+ <translation>Ορισμός ανώτατου ρυθμού καρέ:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="70"/>
+ <source>Requires the use of the FPS Limiter Toggle hotkey to take effect.</source>
+ <translation>Απαιτεί τη χρήση του Πλήκτρου Συντόμευσης Εναλλαγής Περιορισμού FPS για να τεθεί σε ισχύ.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="73"/>
+ <source>Framerate Cap</source>
+ <translation>Όριο Ρυθμού Καρέ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>x</source>
+ <translation>x</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="116"/>
+ <source>Limit Speed Percent</source>
+ <translation>Όριο Ποσοστού Ταχύτητας</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="123"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="141"/>
+ <source>Multicore CPU Emulation</source>
+ <translation>Εξομοίωση Πολυπύρηνων CPU</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="148"/>
+ <source>Extended memory layout (6GB DRAM)</source>
+ <translation>Διάταξη εκτεταμένης μνήμης (6GB DRAM)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="155"/>
+ <source>Confirm exit while emulation is running</source>
+ <translation>Επιβεβαίωση εξόδου κατά την εκτέλεση εξομοίωσης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="162"/>
+ <source>Prompt for user on game boot</source>
+ <translation>Επιλογή χρήστη κατά την εκκίνηση παιχνιδιού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="169"/>
+ <source>Pause emulation when in background</source>
+ <translation>Παύση εξομοίωσης όταν βρίσκεται στο παρασκήνιο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="176"/>
+ <source>Mute audio when in background</source>
+ <translation>Σίγαση ήχου όταν βρίσκεται στο παρασκήνιο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="183"/>
+ <source>Hide mouse on inactivity</source>
+ <translation>Απόκρυψη δρομέα ποντικιού στην αδράνεια</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="225"/>
+ <source>Reset All Settings</source>
+ <translation>Επαναφορά Όλων των Ρυθμίσεων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
+ <source>yuzu</source>
+ <translation>yuzu</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
+ <source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
+ <translation>Επαναφέρει όλες τις ρυθμίσεις και καταργεί όλες τις επιλογές ανά παιχνίδι. Δεν θα διαγράψει καταλόγους παιχνιδιών, προφίλ ή προφίλ εισόδου. Συνέχιση;</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureGraphics</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="17"/>
+ <source>Graphics</source>
+ <translation>Γραφικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="25"/>
+ <source>API Settings</source>
+ <translation>Ρυθμίσεις API</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="64"/>
+ <source>Shader Backend:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="92"/>
+ <source>Device:</source>
+ <translation>Συσκευή:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="120"/>
+ <source>API:</source>
+ <translation>API:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="156"/>
+ <source>Graphics Settings</source>
+ <translation>Ρυθμίσεις Γραφικών</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="162"/>
+ <source>Use disk pipeline cache</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="169"/>
+ <source>Use asynchronous GPU emulation</source>
+ <translation>Χρησιμοποίηση ασύγχρονης εξομοίωσης GPU</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="176"/>
+ <source>Accelerate ASTC texture decoding</source>
+ <translation>Επιτάχυνση του αποκωδικοποίηση υφής ASTC</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="198"/>
+ <source>NVDEC emulation:</source>
+ <translation>Εξομοίωση NVDEC:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="206"/>
+ <source>No Video Output</source>
+ <translation>Χωρίς Έξοδο Βίντεο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="211"/>
+ <source>CPU Video Decoding</source>
+ <translation>Αποκωδικοποίηση Βίντεο CPU</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="216"/>
+ <source>GPU Video Decoding (Default)</source>
+ <translation>Αποκωδικοποίηση Βίντεο GPU (Προεπιλογή)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="242"/>
+ <source>Fullscreen Mode:</source>
+ <translation>Λειτουργία Πλήρους Οθόνης:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="250"/>
+ <source>Borderless Windowed</source>
+ <translation>Παραθυροποιημένο Χωρίς Όρια</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="255"/>
+ <source>Exclusive Fullscreen</source>
+ <translation>Αποκλειστική Πλήρης Οθόνη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="281"/>
+ <source>Aspect Ratio:</source>
+ <translation>Αναλογία Απεικόνισης:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="289"/>
+ <source>Default (16:9)</source>
+ <translation>Προεπιλογή (16:9)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="294"/>
+ <source>Force 4:3</source>
+ <translation>Επιβολή 4:3</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="299"/>
+ <source>Force 21:9</source>
+ <translation>Επιβολή 21:9</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="304"/>
+ <source>Stretch to Window</source>
+ <translation>Επέκταση στο Παράθυρο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="330"/>
+ <source>Resolution:</source>
+ <translation>Ανάλυση:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="338"/>
+ <source>0.5X (360p/540p) [EXPERIMENTAL]</source>
+ <translation>0.5X (360p/540p) [ΠΕΙΡΑΜΑΤΙΚΟ]</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="343"/>
+ <source>0.75X (540p/810p) [EXPERIMENTAL]</source>
+ <translation>0.75X (540p/810p) [ΠΕΙΡΑΜΑΤΙΚΟ]</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="348"/>
+ <source>1X (720p/1080p)</source>
+ <translation>1X (720p/1080p)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="353"/>
+ <source>2X (1440p/2160p)</source>
+ <translation>2X (1440p/2160p)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="358"/>
+ <source>3X (2160p/3240p)</source>
+ <translation>3X (2160p/3240p)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="363"/>
+ <source>4X (2880p/4320p)</source>
+ <translation>4X (2880p/4320p)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="368"/>
+ <source>5X (3600p/5400p)</source>
+ <translation>5X (3600p/5400p)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="373"/>
+ <source>6X (4320p/6480p)</source>
+ <translation>6X (4320p/6480p)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="399"/>
+ <source>Window Adapting Filter:</source>
+ <translation>Φίλτρο Προσαρμογής Παραθύρου:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="407"/>
+ <source>Nearest Neighbor</source>
+ <translation>Πλησιέστερος Γείτονας</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="412"/>
+ <source>Bilinear</source>
+ <translation>Διγραμμικό</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="417"/>
+ <source>Bicubic</source>
+ <translation>Δικυβικό</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="422"/>
+ <source>Gaussian</source>
+ <translation>Gaussian</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="427"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="432"/>
+ <source>AMD FidelityFX™️ Super Resolution (Vulkan Only)</source>
+ <translation>AMD FidelityFX™️ Super Resolution (μόνο Vulkan)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="458"/>
+ <source>Anti-Aliasing Method:</source>
+ <translation>Μέθοδος Anti-Aliasing:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="466"/>
+ <source>None</source>
+ <translation>Κανένα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="471"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="506"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="516"/>
+ <source>Use global background color</source>
+ <translation>Χρησιμοποιήστε καθολικό χρώμα φόντου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="521"/>
+ <source>Set background color:</source>
+ <translation>Ορισμός χρώματος φόντου:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.ui" line="529"/>
+ <source>Background Color:</source>
+ <translation>Χρώμα Φόντου:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
+ <source>GLASM (Assembly Shaders, NVIDIA Only)</source>
+ <translation>GLASM (Shaders Γλώσσας Μηχανής, μόνο NVIDIA)</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureGraphicsAdvanced</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="17"/>
+ <source>Advanced</source>
+ <translation>Για προχωρημένους</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="25"/>
+ <source>Advanced Graphics Settings</source>
+ <translation>Προηγμένες Ρυθμίσεις Γραφικών</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="46"/>
+ <source>Accuracy Level:</source>
+ <translation>Επίπεδο Ακρίβειας:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="75"/>
+ <source>VSync prevents the screen from tearing, but some graphics cards have lower performance with VSync enabled. Keep it enabled if you don&apos;t notice a performance difference.</source>
+ <translation>Το VSync αποτρέπει το &quot;σκίσιμο&quot; της οθόνης, αλλά ορισμένες κάρτες γραφικών έχουν χαμηλότερη απόδοση με ενεργοποιημένο το VSync. Διατηρήστε το ενεργοποιημένο εάν δεν παρατηρείτε διαφορά απόδοσης.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="78"/>
+ <source>Use VSync (OpenGL only)</source>
+ <translation>Χρήση VSync (μόνο OpenGL)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="85"/>
+ <source>Enables asynchronous shader compilation, which may reduce shader stutter. This feature is experimental.</source>
+ <translation>Ενεργοποιεί τη σύνταξη ασύγχρονων shader, η οποία μπορεί να μειώσει το shader stutter. Αυτή η δυνατότητα είναι πειραματική.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="88"/>
+ <source>Use asynchronous shader building (Hack)</source>
+ <translation>Χρήση ασύγχρονης σύνταξης σκίασης (Τέχνασμα)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="95"/>
+ <source>Enables Fast GPU Time. This option will force most games to run at their highest native resolution.</source>
+ <translation>Ενεργοποιεί τον Γοργό Ρυθμό GPU. Αυτή η επιλογή θα αναγκάσει τα περισσότερα παιχνίδια να εκτελούνται στην υψηλότερη εγγενή τους ανάλυση.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="98"/>
+ <source>Use Fast GPU Time (Hack)</source>
+ <translation>Χρήση Γοργού Ρυθμού GPU (Τέχνασμα)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="120"/>
+ <source>Anisotropic Filtering:</source>
+ <translation>Ανισοτροπικό Φιλτράρισμα:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="128"/>
+ <source>Automatic</source>
+ <translation>Αυτόματα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="133"/>
+ <source>Default</source>
+ <translation>Προεπιλεγμένο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="138"/>
+ <source>2x</source>
+ <translation>2x</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="143"/>
+ <source>4x</source>
+ <translation>4x</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="148"/>
+ <source>8x</source>
+ <translation>8x</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="153"/>
+ <source>16x</source>
+ <translation>16x</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureHotkeys</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.ui" line="14"/>
+ <source>Hotkey Settings</source>
+ <translation>Ρυθμίσεις Πλήκτρων Συντόμευσης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.ui" line="17"/>
+ <source>Hotkeys</source>
+ <translation>Πλήκτρα Συντόμευσης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.ui" line="25"/>
+ <source>Double-click on a binding to change it.</source>
+ <translation>Κάντε διπλό κλικ σε ένα δέσιμο για να το αλλάξετε.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.ui" line="45"/>
+ <source>Clear All</source>
+ <translation>Διαγραφή Όλων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.ui" line="52"/>
+ <source>Restore Defaults</source>
+ <translation>Επαναφορά Προεπιλογών</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="94"/>
+ <source>Action</source>
+ <translation>Δράση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="94"/>
+ <source>Hotkey</source>
+ <translation>Πλήκτρο Συντόμευσης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="94"/>
+ <source>Controller Hotkey</source>
+ <translation>Πλήκτρο Συντόμευσης Χειριστηρίου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="365"/>
+ <source>Conflicting Key Sequence</source>
+ <translation>Αντικρουόμενη Ακολουθία Πλήκτρων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="151"/>
+ <source>The entered key sequence is already assigned to: %1</source>
+ <translation>Η εισαγόμενη ακολουθία πλήκτρων έχει ήδη αντιστοιχιστεί στο: %1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="144"/>
+ <source>Home+%1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="158"/>
+ <source>[waiting]</source>
+ <translation>[αναμονή]</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="228"/>
+ <source>Invalid</source>
+ <translation>Μη Έγκυρο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="329"/>
+ <source>Restore Default</source>
+ <translation>Επαναφορά Προκαθορισμένων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="330"/>
+ <source>Clear</source>
+ <translation>Καθαρισμός</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="351"/>
+ <source>Conflicting Button Sequence</source>
+ <translation>Αντικρουόμενη Ακολουθία Κουμπιών</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="352"/>
+ <source>The default button sequence is already assigned to: %1</source>
+ <translation>Η προεπιλεγμένη ακολουθία κουμπιών έχει ήδη αντιστοιχιστεί στο: %1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="366"/>
+ <source>The default key sequence is already assigned to: %1</source>
+ <translation>Η προεπιλεγμένη ακολουθία πλήκτρων έχει ήδη αντιστοιχιστεί στο: %1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureInput</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="14"/>
+ <source>ConfigureInput</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="39"/>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="42"/>
+ <source>Player 1</source>
+ <translation>Παίκτης 1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="50"/>
+ <source>Player 2</source>
+ <translation>Παίκτης 2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="58"/>
+ <source>Player 3</source>
+ <translation>Παίκτης 3</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="66"/>
+ <source>Player 4</source>
+ <translation>Παίκτης 4</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="74"/>
+ <source>Player 5</source>
+ <translation>Παίκτης 5</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="82"/>
+ <source>Player 6</source>
+ <translation>Παίκτης 6</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="90"/>
+ <source>Player 7</source>
+ <translation>Παίκτης 7</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="98"/>
+ <source>Player 8</source>
+ <translation>Παίκτης 8</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="106"/>
+ <source>Advanced</source>
+ <translation>Για προχωρημένους</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="138"/>
+ <source>Console Mode</source>
+ <translation>Λειτουργία Κονσόλας</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="159"/>
+ <source>Docked</source>
+ <translation>Docked</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="169"/>
+ <source>Undocked</source>
+ <translation>Undocked</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="179"/>
+ <source>Vibration</source>
+ <translation>Δόνηση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="215"/>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="261"/>
+ <source>Configure</source>
+ <translation>Διαμόρφωση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="225"/>
+ <source>Motion</source>
+ <translation>Κίνηση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="296"/>
+ <source>Controllers</source>
+ <translation>Χειριστήρια</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="324"/>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="365"/>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="375"/>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="385"/>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="395"/>
+ <source>5</source>
+ <translation>5</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="405"/>
+ <source>6</source>
+ <translation>6</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="415"/>
+ <source>7</source>
+ <translation>7</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="425"/>
+ <source>8</source>
+ <translation>8</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="435"/>
+ <source>Connected</source>
+ <translation>Συνδεδεμένο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="494"/>
+ <source>Defaults</source>
+ <translation>Προκαθορισμένα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input.ui" line="537"/>
+ <source>Clear</source>
+ <translation>Καθαρισμός</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureInputAdvanced</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="14"/>
+ <source>Configure Input</source>
+ <translation>Διαμόρφωση εισόδου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="74"/>
+ <source>Joycon Colors</source>
+ <translation>Χρώματα Joycon</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="125"/>
+ <source>Player 1</source>
+ <translation>Παίκτης 1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="164"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="450"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="754"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1040"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1365"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1651"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1955"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2241"/>
+ <source>L Body</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="219"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="505"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="809"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1706"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2010"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2296"/>
+ <source>L Button</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="295"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="581"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="885"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1171"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1782"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2086"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2372"/>
+ <source>R Body</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="350"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="636"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="940"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1551"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1837"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2141"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2427"/>
+ <source>R Button</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="411"/>
+ <source>Player 2</source>
+ <translation>Παίκτης 2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="715"/>
+ <source>Player 3</source>
+ <translation>Παίκτης 3</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1001"/>
+ <source>Player 4</source>
+ <translation>Παίκτης 4</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1326"/>
+ <source>Player 5</source>
+ <translation>Παίκτης 5</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1612"/>
+ <source>Player 6</source>
+ <translation>Παίκτης 6</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="1916"/>
+ <source>Player 7</source>
+ <translation>Παίκτης 7</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2202"/>
+ <source>Player 8</source>
+ <translation>Παίκτης 8</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2533"/>
+ <source>Emulated Devices</source>
+ <translation>Εξομοιωμένες Συσκευές</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2545"/>
+ <source>Keyboard</source>
+ <translation>Πληκτρολόγιο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2558"/>
+ <source>Mouse</source>
+ <translation>Ποντίκι</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2565"/>
+ <source>Touchscreen</source>
+ <translation>Οθόνη αφής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2588"/>
+ <source>Advanced</source>
+ <translation>Για προχωρημένους</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2595"/>
+ <source>Debug Controller</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2715"/>
+ <source>Configure</source>
+ <translation>Διαμόρφωση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2612"/>
+ <source>Other</source>
+ <translation>Άλλο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2624"/>
+ <source>Emulate Analog with Keyboard Input</source>
+ <translation>Εξομοίωση Αναλογικού με Είσοδο Πληκτρολογίου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2631"/>
+ <source>Requires restarting yuzu</source>
+ <translation>Απαιτεί επανεκκίνηση του yuzu</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2640"/>
+ <source>Enable XInput 8 player support (disables web applet)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2653"/>
+ <source>Enable UDP controllers (not needed for motion)</source>
+ <translation>Ενεργοποίηση χειριστηρίων UDP (δεν απαιτείται για κίνηση)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2666"/>
+ <source>Controller navigation</source>
+ <translation>Πλοήγηση χειριστηρίου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2679"/>
+ <source>Enable mouse panning</source>
+ <translation>Ενεργοποιήστε τη μετατόπιση του ποντικιού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2686"/>
+ <source>Mouse sensitivity</source>
+ <translation>Ευαισθησία ποντικιού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2692"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2708"/>
+ <source>Motion / Touch</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ConfigureInputPlayer</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="14"/>
+ <source>Configure Input</source>
+ <translation>Διαμόρφωση εισόδου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="63"/>
+ <source>Connect Controller</source>
+ <translation>Σύνδεση Χειριστηρίου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="100"/>
+ <source>Input Device</source>
+ <translation>Συσκευή Εισόδου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="156"/>
+ <source>Profile</source>
+ <translation>Προφιλ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="196"/>
+ <source>Save</source>
+ <translation>Αποθήκευση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="212"/>
+ <source>New</source>
+ <translation>Νέο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="228"/>
+ <source>Delete</source>
+ <translation>Διαγραφή</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <source>Left Stick</source>
+ <translation>Αριστερό Stick</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="349"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="391"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="925"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="964"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2583"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2622"/>
+ <source>Up</source>
+ <translation>Πάνω</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="422"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="995"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1034"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2069"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2653"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2692"/>
+ <source>Left</source>
+ <translation>Αριστερά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="510"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1044"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2702"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2741"/>
+ <source>Right</source>
+ <translation>Δεξιά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="553"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1126"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1165"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2823"/>
+ <source>Down</source>
+ <translation>Κάτω</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="623"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="662"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2854"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2893"/>
+ <source>Pressed</source>
+ <translation>Πατημένο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="672"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="711"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2903"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2942"/>
+ <source>Modifier</source>
+ <translation>Τροποποιητής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="721"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2952"/>
+ <source>Range</source>
+ <translation>Εύρος</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="754"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2985"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="797"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3025"/>
+ <source>Deadzone: 0%</source>
+ <translation>Νεκρή Ζώνη: 0%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="821"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3049"/>
+ <source>Modifier Range: 0%</source>
+ <translation>Εύρος Τροποποιητή: 0%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="867"/>
+ <source>D-Pad</source>
+ <translation>D-Pad</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
+ <source>L</source>
+ <translation>L</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
+ <source>ZL</source>
+ <translation>ZL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1465"/>
+ <source>Minus</source>
+ <translation>Μείον</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1475"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1514"/>
+ <source>Capture</source>
+ <translation>Στιγμιότυπο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
+ <source>Plus</source>
+ <translation>Συν</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1594"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1633"/>
+ <source>Home</source>
+ <translation>Αρχική</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <source>R</source>
+ <translation>R</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <source>ZR</source>
+ <translation>ZR</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1873"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1912"/>
+ <source>SL</source>
+ <translation>SL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1922"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1961"/>
+ <source>SR</source>
+ <translation>SR</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2030"/>
+ <source>Motion 1</source>
+ <translation>Κίνηση 1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2079"/>
+ <source>Motion 2</source>
+ <translation>Κίνηση 2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2170"/>
+ <source>Face Buttons</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2267"/>
+ <source>X</source>
+ <translation>Χ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2298"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2337"/>
+ <source>Y</source>
+ <translation>Υ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2386"/>
+ <source>A</source>
+ <translation>A</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2468"/>
+ <source>B</source>
+ <translation>B</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
+ <source>Right Stick</source>
+ <translation>Δεξιός Μοχλός</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
+ <source>Clear</source>
+ <translation>Καθαρισμός</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <source>[not set]</source>
+ <translation>[άδειο]</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
+ <source>Toggle button</source>
+ <translation>Κουμπί εναλλαγής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
+ <source>Invert button</source>
+ <translation>Κουμπί αντιστροφής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
+ <source>Invert axis</source>
+ <translation>Αντιστροφή άξονα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
+ <source>Set threshold</source>
+ <translation>Ορισμός ορίου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
+ <source>Choose a value between 0% and 100%</source>
+ <translation>Επιλέξτε μια τιμή μεταξύ 0% και 100%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
+ <source>Set gyro threshold</source>
+ <translation>Ρύθμιση κατωφλίου γυροσκοπίου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
+ <source>Map Analog Stick</source>
+ <translation>Χαρτογράφηση Αναλογικού Stick</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
+ <source>After pressing OK, first move your joystick horizontally, and then vertically.
+To invert the axes, first move your joystick vertically, and then horizontally.</source>
+ <translation>Αφού πατήσετε OK, μετακινήστε πρώτα το joystick σας οριζόντια και μετά κατακόρυφα.
+Για να αντιστρέψετε τους άξονες, μετακινήστε πρώτα το joystick κατακόρυφα και μετά οριζόντια.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
+ <source>Center axis</source>
+ <translation>Κεντρικός άξονας</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
+ <source>Deadzone: %1%</source>
+ <translation>Νεκρή Ζώνη: %1%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
+ <source>Modifier Range: %1%</source>
+ <translation>Εύρος Τροποποιητή: %1%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
+ <source>Pro Controller</source>
+ <translation>Pro Controller</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
+ <source>Dual Joycons</source>
+ <translation>Διπλά Joycons</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
+ <source>Left Joycon</source>
+ <translation>Αριστερό Joycon</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
+ <source>Right Joycon</source>
+ <translation>Δεξί Joycon</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
+ <source>Handheld</source>
+ <translation>Handheld</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
+ <source>GameCube Controller</source>
+ <translation>Χειριστήριο GameCube</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
+ <source>Poke Ball Plus</source>
+ <translation>Poke Ball Plus</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
+ <source>NES Controller</source>
+ <translation>Χειριστήριο NES</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
+ <source>SNES Controller</source>
+ <translation>Χειριστήριο SNES</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
+ <source>N64 Controller</source>
+ <translation>Χειριστήριο N64</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
+ <source>Sega Genesis</source>
+ <translation>Sega Genesis</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
+ <source>Start / Pause</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <source>Z</source>
+ <translation>Z</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <source>Control Stick</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <source>C-Stick</source>
+ <translation>C-Stick</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
+ <source>Shake!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <source>[waiting]</source>
+ <translation>[αναμονή]</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
+ <source>New Profile</source>
+ <translation>Νέο Προφίλ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
+ <source>Enter a profile name:</source>
+ <translation>Εισαγάγετε ένα όνομα προφίλ:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
+ <source>Create Input Profile</source>
+ <translation>Δημιουργία Προφίλ Χειρισμού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
+ <source>The given profile name is not valid!</source>
+ <translation>Το όνομα του προφίλ δεν είναι έγκυρο!</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
+ <source>Failed to create the input profile &quot;%1&quot;</source>
+ <translation>Η δημιουργία του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
+ <source>Delete Input Profile</source>
+ <translation>Διαγραφή Προφίλ Χειρισμού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
+ <source>Failed to delete the input profile &quot;%1&quot;</source>
+ <translation>Η διαγραφή του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
+ <source>Load Input Profile</source>
+ <translation>Φόρτωση Προφίλ Χειρισμού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
+ <source>Failed to load the input profile &quot;%1&quot;</source>
+ <translation>Η φόρτωση του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
+ <source>Save Input Profile</source>
+ <translation>Αποθήκευση Προφίλ Χειρισμού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
+ <source>Failed to save the input profile &quot;%1&quot;</source>
+ <translation>Η αποθήκευση του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureInputProfileDialog</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_profile_dialog.ui" line="14"/>
+ <source>Create Input Profile</source>
+ <translation>Δημιουργία Προφίλ Εισαγωγής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_profile_dialog.ui" line="40"/>
+ <source>Clear</source>
+ <translation>Καθαρισμός</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_profile_dialog.ui" line="47"/>
+ <source>Defaults</source>
+ <translation>Προκαθορισμένα</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureMotionTouch</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="6"/>
+ <source>Configure Motion / Touch</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="15"/>
+ <source>Touch</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="23"/>
+ <source>UDP Calibration:</source>
+ <translation>Βαθμονόμηση UDP:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="30"/>
+ <source>(100, 50) - (1800, 850)</source>
+ <translation>(100, 50) - (1800, 850)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
+ <source>Configure</source>
+ <translation>Διαμόρφωση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="57"/>
+ <source>Touch from button profile:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="85"/>
+ <source>CemuhookUDP Config</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="91"/>
+ <source>You may use any Cemuhook compatible UDP input source to provide motion and touch input.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="134"/>
+ <source>Server:</source>
+ <translation>Εξυπηρετητής:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="161"/>
+ <source>Port:</source>
+ <translation>Πόρτα:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="188"/>
+ <source>Learn More</source>
+ <translation>Μάθετε Περισσότερα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <source>Test</source>
+ <translation>Τεστ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="214"/>
+ <source>Add Server</source>
+ <translation>Προσθήκη Διακομιστή</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="247"/>
+ <source>Remove Server</source>
+ <translation>Κατάργηση Διακομιστή</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
+ <source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
+ <source>%1:%2</source>
+ <translation>%1:%2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
+ <source>yuzu</source>
+ <translation>yuzu</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <source>Port number has invalid characters</source>
+ <translation>Ο αριθμός θύρας έχει μη έγκυρους χαρακτήρες</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <source>Port has to be in range 0 and 65353</source>
+ <translation>Η θύρα πρέπει να ανήκει στο εύρος 0 και 65353</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <source>IP address is not valid</source>
+ <translation>Η διεύθυνση IP δεν είναι έγκυρη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <source>This UDP server already exists</source>
+ <translation>Αυτός ο διακομιστής UDP υπάρχει ήδη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <source>Unable to add more than 8 servers</source>
+ <translation>Δεν είναι δυνατή η προσθήκη περισσότερων από 8 διακομιστών</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
+ <source>Testing</source>
+ <translation>Δοκιμή</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
+ <source>Configuring</source>
+ <translation>Διαμόρφωση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
+ <source>Test Successful</source>
+ <translation>Τεστ Επιτυχές</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
+ <source>Successfully received data from the server.</source>
+ <translation>Λήφθηκαν με επιτυχία δεδομένα από τον διακομιστή.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
+ <source>Test Failed</source>
+ <translation>Η Δοκιμή Απέτυχε</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
+ <source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
+ <translation>Δεν ήταν δυνατή η λήψη έγκυρων δεδομένων από τον διακομιστή.&lt;br&gt;Βεβαιωθείτε ότι ο διακομιστής έχει ρυθμιστεί σωστά και ότι η διεύθυνση και η θύρα είναι σωστές.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
+ <source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
+ <translation>Η δοκιμή UDP ή η διαμόρφωση βαθμονόμησης είναι σε εξέλιξη.&lt;br&gt;Παρακαλώ περιμένετε να τελειώσουν.</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureNetwork</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_network.ui" line="17"/>
+ <source>Network</source>
+ <translation>Δίκτυο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_network.ui" line="25"/>
+ <source>General</source>
+ <translation>Γενικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_network.ui" line="34"/>
+ <source>Network Interface</source>
+ <translation>Διεπαφή Δικτύου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
+ <source>None</source>
+ <translation>Κανένα</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigurePerGame</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.ui" line="12"/>
+ <source>Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.ui" line="26"/>
+ <source>Info</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.ui" line="85"/>
+ <source>Name</source>
+ <translation>Όνομα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.ui" line="92"/>
+ <source>Title ID</source>
+ <translation>ID Τίτλου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.ui" line="129"/>
+ <source>Filename</source>
+ <translation>Όνομα αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.ui" line="156"/>
+ <source>Format</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.ui" line="163"/>
+ <source>Version</source>
+ <translation>Έκδοση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.ui" line="170"/>
+ <source>Size</source>
+ <translation>Μέγεθος</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.ui" line="177"/>
+ <source>Developer</source>
+ <translation>Προγραμματιστής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <source>Add-Ons</source>
+ <translation>Πρόσθετα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <source>General</source>
+ <translation>Γενικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <source>System</source>
+ <translation>Σύστημα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <source>CPU</source>
+ <translation>CPU</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <source>Graphics</source>
+ <translation>Γραφικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <source>Adv. Graphics</source>
+ <translation>Προχ. Γραφικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <source>Audio</source>
+ <translation>Ήχος</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <source>Properties</source>
+ <translation>Ιδιότητες</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
+ <source>Use global configuration (%1)</source>
+ <translation>Χρήση καθολικής διαμόρφωσης (%1)</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigurePerGameAddons</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.ui" line="17"/>
+ <source>Add-Ons</source>
+ <translation>Πρόσθετα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
+ <source>Patch Name</source>
+ <translation>Όνομα Ενημέρωσης Κώδικα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <source>Version</source>
+ <translation>Έκδοση</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureProfileManager</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.ui" line="17"/>
+ <source>Profiles</source>
+ <translation>Τα προφίλ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.ui" line="25"/>
+ <source>Profile Manager</source>
+ <translation>Διαχείριση Προφίλ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.ui" line="42"/>
+ <source>Current User</source>
+ <translation>Τρέχων Χρήστης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.ui" line="80"/>
+ <source>Username</source>
+ <translation>Όνομα χρήστη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.ui" line="110"/>
+ <source>Set Image</source>
+ <translation>Ορισμός Εικόνας</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.ui" line="130"/>
+ <source>Add</source>
+ <translation>Προσθήκη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.ui" line="140"/>
+ <source>Rename</source>
+ <translation>Μετονομασία</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.ui" line="150"/>
+ <source>Remove</source>
+ <translation>Αφαίρεση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.ui" line="162"/>
+ <source>Profile management is available only when game is not running.</source>
+ <translation>Η διαχείριση προφίλ είναι διαθέσιμη μόνο όταν το παιχνίδι δεν εκτελείται.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
+ <source>%1
+%2</source>
+ <comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
+ <translation>%1
+%2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
+ <source>Enter Username</source>
+ <translation>Εισάγετε Όνομα Χρήστη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
+ <source>Users</source>
+ <translation>Χρήστες</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
+ <source>Enter a username for the new user:</source>
+ <translation>Εισαγάγετε ένα όνομα χρήστη για τον νέο χρήστη:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
+ <source>Enter a new username:</source>
+ <translation>Εισαγάγετε ένα νέο όνομα χρήστη:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
+ <source>Confirm Delete</source>
+ <translation>Επιβεβαίωση Διαγραφής</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
+ <source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
+ <translation>Πρόκειται να διαγράψετε χρήστη με όνομα &quot;%1&quot;. Είστε σίγουροι;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
+ <source>Select User Image</source>
+ <translation>Επιλέξτε Εικόνα χρήστη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
+ <source>JPEG Images (*.jpg *.jpeg)</source>
+ <translation>Εικόνες JPEG (*.jpg *.jpeg)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
+ <source>Error deleting image</source>
+ <translation>Σφάλμα κατα τη διαγραφή εικόνας</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
+ <source>Error occurred attempting to overwrite previous image at: %1.</source>
+ <translation>Παρουσιάστηκε σφάλμα κατά την προσπάθεια αντικατάστασης της προηγούμενης εικόνας στο: %1.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
+ <source>Error deleting file</source>
+ <translation>Σφάλμα κατα τη διαγραφή του αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
+ <source>Unable to delete existing file: %1.</source>
+ <translation>Δεν είναι δυνατή η διαγραφή του υπάρχοντος αρχείου: %1.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
+ <source>Error creating user image directory</source>
+ <translation>Σφάλμα δημιουργίας καταλόγου εικόνων χρήστη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
+ <source>Unable to create directory %1 for storing user images.</source>
+ <translation>Δεν είναι δυνατή η δημιουργία του καταλόγου %1 για την αποθήκευση εικόνων χρήστη.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
+ <source>Error copying user image</source>
+ <translation>Σφάλμα κατά την αντιγραφή της εικόνας χρήστη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
+ <source>Unable to copy image from %1 to %2</source>
+ <translation>Αδύνατη η αντιγραφή της εικόνας από το %1 στο %2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
+ <source>Error resizing user image</source>
+ <translation>Σφάλμα αλλαγής μεγέθους εικόνας χρήστη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
+ <source>Unable to resize image</source>
+ <translation>Δεν είναι δυνατή η αλλαγή μεγέθους της εικόνας</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureSystem</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="17"/>
+ <source>System</source>
+ <translation>Σύστημα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="25"/>
+ <source>System Settings</source>
+ <translation>Ρυθμίσεις Συστήματος</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="33"/>
+ <source>Region:</source>
+ <translation>Περιφέρεια:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="41"/>
+ <source>Auto</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="46"/>
+ <source>Default</source>
+ <translation>Προεπιλεγμένο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="51"/>
+ <source>CET</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="56"/>
+ <source>CST6CDT</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="61"/>
+ <source>Cuba</source>
+ <translation>Κούβα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="66"/>
+ <source>EET</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="71"/>
+ <source>Egypt</source>
+ <translation>Αίγυπτος</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="76"/>
+ <source>Eire</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="81"/>
+ <source>EST</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="86"/>
+ <source>EST5EDT</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="91"/>
+ <source>GB</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="96"/>
+ <source>GB-Eire</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="101"/>
+ <source>GMT</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="106"/>
+ <source>GMT+0</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="111"/>
+ <source>GMT-0</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="116"/>
+ <source>GMT0</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="121"/>
+ <source>Greenwich</source>
+ <translation>Γκρήνουιτς</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="126"/>
+ <source>Hongkong</source>
+ <translation>Χονγκ Κονγκ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="131"/>
+ <source>HST</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="136"/>
+ <source>Iceland</source>
+ <translation>Ισλανδία</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="141"/>
+ <source>Iran</source>
+ <translation>Ιράν</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="146"/>
+ <source>Israel</source>
+ <translation>Ισραήλ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="151"/>
+ <source>Jamaica</source>
+ <translation>Ιαμαϊκή</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="275"/>
+ <source>Japan</source>
+ <translation>Ιαπωνία</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="161"/>
+ <source>Kwajalein</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="166"/>
+ <source>Libya</source>
+ <translation>Λιβύη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="171"/>
+ <source>MET</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="176"/>
+ <source>MST</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="181"/>
+ <source>MST7MDT</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="186"/>
+ <source>Navajo</source>
+ <translation>Ναβάχο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="191"/>
+ <source>NZ</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="196"/>
+ <source>NZ-CHAT</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="201"/>
+ <source>Poland</source>
+ <translation>Πολωνία</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="206"/>
+ <source>Portugal</source>
+ <translation>Πορτογαλία</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="211"/>
+ <source>PRC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="216"/>
+ <source>PST8PDT</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="221"/>
+ <source>ROC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="226"/>
+ <source>ROK</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="231"/>
+ <source>Singapore</source>
+ <translation>Σιγκαπούρη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="236"/>
+ <source>Turkey</source>
+ <translation>Τουρκία</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="241"/>
+ <source>UCT</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="246"/>
+ <source>Universal</source>
+ <translation>Παγκόσμια</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="251"/>
+ <source>UTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="256"/>
+ <source>W-SU</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="261"/>
+ <source>WET</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="266"/>
+ <source>Zulu</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="280"/>
+ <source>USA</source>
+ <translation>ΗΠΑ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="285"/>
+ <source>Europe</source>
+ <translation>Ευρώπη</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="290"/>
+ <source>Australia</source>
+ <translation>Αυστραλία</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="295"/>
+ <source>China</source>
+ <translation>Κίνα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="300"/>
+ <source>Korea</source>
+ <translation>Κορέα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="305"/>
+ <source>Taiwan</source>
+ <translation>Ταϊβάν</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="313"/>
+ <source>Time Zone:</source>
+ <translation>Ζώνη Ώρας:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="320"/>
+ <source>Note: this can be overridden when region setting is auto-select</source>
+ <translation>Σημείωση: αυτό μπορεί να παρακαμφθεί όταν η ρύθμιση περιοχής είναι ως αυτόματη επιλογή</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="324"/>
+ <source>Japanese (日本語)</source>
+ <translation>Ιαπωνικά (日本語)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="329"/>
+ <source>English</source>
+ <translation>Αγγλικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="334"/>
+ <source>French (français)</source>
+ <translation>Γαλλικά (Français)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="339"/>
+ <source>German (Deutsch)</source>
+ <translation>Γερμανικά (Deutsch)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="344"/>
+ <source>Italian (italiano)</source>
+ <translation>Ιταλικά (Italiano)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="349"/>
+ <source>Spanish (español)</source>
+ <translation>Ισπανικά (Español)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="354"/>
+ <source>Chinese</source>
+ <translation>Κινέζικα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="359"/>
+ <source>Korean (한국어)</source>
+ <translation>Κορεάτικα (한국어)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="364"/>
+ <source>Dutch (Nederlands)</source>
+ <translation>Ολλανδικά (Nederlands)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="369"/>
+ <source>Portuguese (português)</source>
+ <translation>Πορτογαλικά (Português)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="374"/>
+ <source>Russian (Русский)</source>
+ <translation>Ρώσικα (Русский)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="379"/>
+ <source>Taiwanese</source>
+ <translation>Ταϊβανέζικα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="384"/>
+ <source>British English</source>
+ <translation>Βρετανικά Αγγλικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="389"/>
+ <source>Canadian French</source>
+ <translation>Καναδικά Γαλλικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="394"/>
+ <source>Latin American Spanish</source>
+ <translation>Λατινοαμερικάνικα Ισπανικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="399"/>
+ <source>Simplified Chinese</source>
+ <translation>Απλοποιημένα Κινέζικα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="404"/>
+ <source>Traditional Chinese (正體中文)</source>
+ <translation>Παραδοσιακά Κινέζικα (正體中文)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="409"/>
+ <source>Brazilian Portuguese (português do Brasil)</source>
+ <translation>Πορτογαλικά Βραζιλίας (Português do Brasil)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="417"/>
+ <source>Custom RTC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="424"/>
+ <source>Language</source>
+ <translation>Γλώσσα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="431"/>
+ <source>RNG Seed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="439"/>
+ <source>Mono</source>
+ <translation>Μονοφωνικό</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="444"/>
+ <source>Stereo</source>
+ <translation>Στέρεοφωνικό</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="449"/>
+ <source>Surround</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="457"/>
+ <source>Console ID:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="464"/>
+ <source>Sound output mode</source>
+ <translation>Λειτουργία εξόδου ήχου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="478"/>
+ <source>d MMM yyyy h:mm:ss AP</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="515"/>
+ <source>Regenerate</source>
+ <translation>Εκ Νέου Αντικατάσταση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.ui" line="540"/>
+ <source>System settings are available only when game is not running.</source>
+ <translation>Οι ρυθμίσεις συστήματος είναι διαθέσιμες μόνο όταν το παιχνίδι δεν εκτελείται.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
+ <source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
+ <translation>Αυτό θα αντικαταστήσει το τρέχων εικονικό σας Switch με ένα νέο, και το παλιό δεν θα είναι πια ανακτήσιμο. Αυτό μπορεί να έχει απροσδόκητα αποτελέσματα στα παιχνίδια. Επίσης, μπορεί να αποτύχει εάν χρησιμοποιείτε ένα ξεπερασμένο μέσο αποθήκευσης παιχνιδιού. Συνέχιση;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
+ <source>Warning</source>
+ <translation>Προσοχή</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
+ <source>Console ID: 0x%1</source>
+ <translation>Console ID: 0x%1</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureTas</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.ui" line="11"/>
+ <source>TAS</source>
+ <translation>TAS</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.ui" line="17"/>
+ <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Reads controller input from scripts in the same format as TAS-nx scripts.&lt;br/&gt;For a more detailed explanation, please consult the &lt;a href=&quot;https://yuzu-emu.org/help/feature/tas/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;help page&lt;/span&gt;&lt;/a&gt; on the yuzu website.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.ui" line="24"/>
+ <source>To check which hotkeys control the playback/recording, please refer to the Hotkey settings (Configure -&gt; General -&gt; Hotkeys).</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.ui" line="34"/>
+ <source>WARNING: This is an experimental feature.&lt;br/&gt;It will not play back scripts frame perfectly with the current, imperfect syncing method.</source>
+ <translation>ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αυτό είναι ένα πειραματικό χαρακτηριστικό.&lt;br/&gt;Δεν θα αναπαράγει τέλεια καρέ με την τρέχουσα, ατελή μέθοδο συγχρονισμού.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.ui" line="51"/>
+ <source>Settings</source>
+ <translation>Ρυθμίσεις</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.ui" line="57"/>
+ <source>Enable TAS features</source>
+ <translation>Ενεργοποίηση λειτουργιών TAS</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.ui" line="64"/>
+ <source>Loop script</source>
+ <translation>Σενάριο επανάληψης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.ui" line="74"/>
+ <source>Pause execution during loads</source>
+ <translation>Παύση εκτέλεσης κατά τη διάρκεια φόρτωσης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.ui" line="88"/>
+ <source>Script Directory</source>
+ <translation>Κατάλογος Σεναρίων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.ui" line="94"/>
+ <source>Path</source>
+ <translation>Μονοπάτι</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.ui" line="101"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureTasDialog</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.cpp" line="20"/>
+ <source>TAS Configuration</source>
+ <translation>Ρυθμίσεις TAS</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_tas.cpp" line="51"/>
+ <source>Select TAS Load Directory...</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ConfigureTouchFromButton</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.ui" line="14"/>
+ <source>Configure Touchscreen Mappings</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.ui" line="22"/>
+ <source>Mapping:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.ui" line="48"/>
+ <source>New</source>
+ <translation>Νέο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.ui" line="61"/>
+ <source>Delete</source>
+ <translation>Διαγραφή</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.ui" line="74"/>
+ <source>Rename</source>
+ <translation>Μετονομασία</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.ui" line="92"/>
+ <source>Click the bottom area to add a point, then press a button to bind.
+Drag points to change position, or double-click table cells to edit values.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.ui" line="116"/>
+ <source>Delete Point</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
+ <source>Button</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
+ <source>X</source>
+ <comment>X axis</comment>
+ <translation>Χ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
+ <source>Y</source>
+ <comment>Y axis</comment>
+ <translation>Υ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
+ <source>New Profile</source>
+ <translation>Νέο Προφίλ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
+ <source>Enter the name for the new profile.</source>
+ <translation>Εισάγετε το όνομα για το νέο προφίλ.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
+ <source>Delete Profile</source>
+ <translation>Διαγραφή Προφίλ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
+ <source>Delete profile %1?</source>
+ <translation>Διαγραφή του προφίλ %1;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
+ <source>Rename Profile</source>
+ <translation>Μετονομασία Προφίλ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
+ <source>New name:</source>
+ <translation>Νέο όνομα:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
+ <source>[press key]</source>
+ <translation>[πατήστε πλήκτρο]</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureTouchscreenAdvanced</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touchscreen_advanced.ui" line="14"/>
+ <source>Configure Touchscreen</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touchscreen_advanced.ui" line="26"/>
+ <source>Warning: The settings in this page affect the inner workings of yuzu&apos;s emulated touchscreen. Changing them may result in undesirable behavior, such as the touchscreen partially or not working. You should only use this page if you know what you are doing.</source>
+ <translation>Προειδοποίηση: Οι ρυθμίσεις σε αυτήν τη σελίδα επηρεάζουν την εσωτερική λειτουργία της προσομοιωμένης οθόνης αφής του yuzu. Η αλλαγή τους μπορεί να οδηγήσει σε ανεπιθύμητη συμπεριφορά, όπως μερική ή μη λειτουργία της οθόνης αφής. Θα πρέπει να χρησιμοποιήσετε αυτήν τη σελίδα μόνο εάν γνωρίζετε τι κάνετε.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touchscreen_advanced.ui" line="52"/>
+ <source>Touch Parameters</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touchscreen_advanced.ui" line="71"/>
+ <source>Touch Diameter Y</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touchscreen_advanced.ui" line="91"/>
+ <source>Touch Diameter X</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touchscreen_advanced.ui" line="98"/>
+ <source>Rotational Angle</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touchscreen_advanced.ui" line="132"/>
+ <source>Restore Defaults</source>
+ <translation>Επαναφορά Προεπιλογών</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureUI</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="20"/>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="28"/>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="40"/>
+ <source>None</source>
+ <translation>Κανένα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="21"/>
+ <source>Small (32x32)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="22"/>
+ <source>Standard (64x64)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="23"/>
+ <source>Large (128x128)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="24"/>
+ <source>Full Size (256x256)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="29"/>
+ <source>Small (24x24)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="30"/>
+ <source>Standard (48x48)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="31"/>
+ <source>Large (72x72)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="36"/>
+ <source>Filename</source>
+ <translation>Όνομα αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="37"/>
+ <source>Filetype</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="38"/>
+ <source>Title ID</source>
+ <translation>ID Τίτλου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="39"/>
+ <source>Title Name</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ConfigureUi</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="17"/>
+ <source>UI</source>
+ <translation>Διεπαφή</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="23"/>
+ <source>General</source>
+ <translation>Γενικά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="31"/>
+ <source>Note: Changing language will apply your configuration.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="43"/>
+ <source>Interface language:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="57"/>
+ <source>Theme:</source>
+ <translation>Θέμα:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="74"/>
+ <source>Game List</source>
+ <translation>Λίστα Παιχνιδιών</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="82"/>
+ <source>Show Add-Ons Column</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="91"/>
+ <source>Game Icon Size:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="105"/>
+ <source>Folder Icon Size:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="119"/>
+ <source>Row 1 Text:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="133"/>
+ <source>Row 2 Text:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="150"/>
+ <source>Screenshots</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="158"/>
+ <source>Ask Where To Save Screenshots (Windows Only)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="167"/>
+ <source>Screenshots Path: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.ui" line="177"/>
+ <source>...</source>
+ <translation>...</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="93"/>
+ <source>Select Screenshots Path...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="173"/>
+ <source>&lt;System&gt;</source>
+ <translation>&lt;System&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ui.cpp" line="174"/>
+ <source>English</source>
+ <translation>Αγγλικά</translation>
+ </message>
+</context>
+<context>
+ <name>ConfigureVibration</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="14"/>
+ <source>Configure Vibration</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="23"/>
+ <source>Press any controller button to vibrate the controller.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="30"/>
+ <source>Vibration</source>
+ <translation>Δόνηση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="63"/>
+ <source>Player 1</source>
+ <translation>Παίκτης 1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="200"/>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="252"/>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="322"/>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="374"/>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="478"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="115"/>
+ <source>Player 2</source>
+ <translation>Παίκτης 2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="167"/>
+ <source>Player 3</source>
+ <translation>Παίκτης 3</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="219"/>
+ <source>Player 4</source>
+ <translation>Παίκτης 4</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="289"/>
+ <source>Player 5</source>
+ <translation>Παίκτης 5</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="341"/>
+ <source>Player 6</source>
+ <translation>Παίκτης 6</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="393"/>
+ <source>Player 7</source>
+ <translation>Παίκτης 7</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="445"/>
+ <source>Player 8</source>
+ <translation>Παίκτης 8</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="503"/>
+ <source>Settings</source>
+ <translation>Ρυθμίσεις</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_vibration.ui" line="509"/>
+ <source>Enable Accurate Vibration</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ConfigureWeb</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="14"/>
+ <source>Form</source>
+ <translation>Φόρμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="17"/>
+ <source>Web</source>
+ <translation>Ιστός</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="25"/>
+ <source>yuzu Web Service</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="31"/>
+ <source>By providing your username and token, you agree to allow yuzu to collect additional usage data, which may include user identifying information.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="155"/>
+ <source>Verify</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="56"/>
+ <source>Sign up</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="66"/>
+ <source>Token: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="76"/>
+ <source>Username: </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="93"/>
+ <source>What is my token?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="118"/>
+ <source>Telemetry</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="124"/>
+ <source>Share anonymous usage data with the yuzu team</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="131"/>
+ <source>Learn more</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="140"/>
+ <source>Telemetry ID:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="156"/>
+ <source>Regenerate</source>
+ <translation>Εκ Νέου Αντικατάσταση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="170"/>
+ <source>Discord Presence</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.ui" line="176"/>
+ <source>Show Current Game in your Discord Status</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="69"/>
+ <source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn more&lt;/span&gt;&lt;/a&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="73"/>
+ <source>&lt;a href=&apos;https://profile.yuzu-emu.org/&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Sign up&lt;/span&gt;&lt;/a&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="77"/>
+ <source>&lt;a href=&apos;https://yuzu-emu.org/wiki/yuzu-web-service/&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;What is my token?&lt;/span&gt;&lt;/a&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="126"/>
+ <source>Telemetry ID: 0x%1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="166"/>
+ <source>Unspecified</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="118"/>
+ <source>Token not verified</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="119"/>
+ <source>Token was not verified. The change to your token has not been saved.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="145"/>
+ <source>Verifying...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="167"/>
+ <source>Verification failed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_web.cpp" line="168"/>
+ <source>Verification failed. Check that you have entered your token correctly, and that your internet connection is working.</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>ControllerDialog</name>
+ <message>
+ <location filename="../../src/yuzu/debugger/controller.cpp" line="21"/>
+ <source>Controller P1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/controller.cpp" line="60"/>
+ <source>&amp;Controller P1</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>GMainWindow</name>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
+ <source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
+ <source>Telemetry</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
+ <source>Loading Web Applet...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
+ <source>Disable Web Applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
+ <source>The amount of shaders currently being built</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <source>The current selected resolution scaling multiplier.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
+ <source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
+ <source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
+ <source>DOCK</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
+ <source>VULKAN</source>
+ <translation>VULKAN</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
+ <source>OPENGL</source>
+ <translation>OPENGL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
+ <source>&amp;Clear Recent Files</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
+ <source>&amp;Continue</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
+ <source>yuzu is running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
+ <source>Warning Outdated Game Format</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
+ <source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
+ <source>Error while loading ROM!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <source>The ROM format is not supported.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
+ <source>An error occurred initializing the video core.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
+ <source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
+ <source>Error while loading ROM! %1</source>
+ <comment>%1 signifies a numeric error code.</comment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
+ <source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
+ <comment>%1 signifies an error string.</comment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
+ <source>An unknown error occurred. Please see the log for more details.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
+ <source>(64-bit)</source>
+ <translation>(64-bit)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
+ <source>(32-bit)</source>
+ <translation>(32-bit)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
+ <source>%1 %2</source>
+ <comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
+ <translation>%1 %2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
+ <source>Save Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <source>Mod Data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
+ <source>Error Opening %1 Folder</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
+ <source>Folder does not exist!</source>
+ <translation>Ο φάκελος δεν υπάρχει!</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
+ <source>Error Opening Transferable Shader Cache</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
+ <source>Failed to create the shader cache directory for this title.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <source>Contents</source>
+ <translation>Περιεχόμενα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
+ <source>Update</source>
+ <translation>Ενημέρωση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
+ <source>DLC</source>
+ <translation>DLC</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
+ <source>Remove Entry</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
+ <source>Remove Installed Game %1?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <source>Successfully Removed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <source>Successfully removed the installed base game.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
+ <source>Error Removing %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
+ <source>The base game is not installed in the NAND and cannot be removed.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
+ <source>Successfully removed the installed update.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
+ <source>There is no update installed for this title.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
+ <source>There are no DLC installed for this title.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
+ <source>Successfully removed %1 installed DLC.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <source>Delete OpenGL Transferable Shader Cache?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <source>Delete Vulkan Transferable Shader Cache?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
+ <source>Delete All Transferable Shader Caches?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
+ <source>Remove Custom Game Configuration?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
+ <source>Remove File</source>
+ <translation>Αφαίρεση Αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
+ <source>Error Removing Transferable Shader Cache</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
+ <source>A shader cache for this title does not exist.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
+ <source>Successfully removed the transferable shader cache.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
+ <source>Failed to remove the transferable shader cache.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <source>Error Removing Transferable Shader Caches</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
+ <source>Successfully removed the transferable shader caches.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
+ <source>Failed to remove the transferable shader cache directory.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
+ <source>Error Removing Custom Configuration</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
+ <source>A custom configuration for this title does not exist.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
+ <source>Successfully removed the custom game configuration.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
+ <source>Failed to remove the custom game configuration.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
+ <source>RomFS Extraction Failed!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
+ <source>There was an error copying the RomFS files or the user cancelled the operation.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
+ <source>Full</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
+ <source>Skeleton</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
+ <source>Select RomFS Dump Mode</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
+ <source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
+ <source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <source>Extracting RomFS...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
+ <source>Cancel</source>
+ <translation>Ακύρωση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
+ <source>RomFS Extraction Succeeded!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
+ <source>The operation completed successfully.</source>
+ <translation>Η επέμβαση ολοκληρώθηκε με επιτυχία.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
+ <source>Error Opening %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
+ <source>Select Directory</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
+ <source>Properties</source>
+ <translation>Ιδιότητες</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
+ <source>The game properties could not be loaded.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <source>Switch Executable (%1);;All Files (*.*)</source>
+ <comment>%1 is an identifier for the Switch executable file extensions.</comment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
+ <source>Load File</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
+ <source>Open Extracted ROM Directory</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
+ <source>Invalid Directory Selected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
+ <source>The directory you have selected does not contain a &apos;main&apos; file.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
+ <source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
+ <source>Install Files</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
+ <source>%n file(s) remaining</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
+ <source>Installing file &quot;%1&quot;...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
+ <source>Install Results</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
+ <source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
+Please, only use this feature to install updates and DLC.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
+ <source>%n file(s) were newly installed
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <source>%n file(s) were overwritten
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message numerus="yes">
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
+ <source>%n file(s) failed to install
+</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <source>System Application</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <source>System Archive</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <source>System Application Update</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <source>Firmware Package (Type A)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <source>Firmware Package (Type B)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
+ <source>Game</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
+ <source>Game Update</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <source>Game DLC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <source>Delta Title</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
+ <source>Select NCA Install Type...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
+ <source>Please select the type of title you would like to install this NCA as:
+(In most instances, the default &apos;Game&apos; is fine.)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
+ <source>Failed to Install</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
+ <source>The title type you selected for the NCA is invalid.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
+ <source>File not found</source>
+ <translation>Το αρχείο δεν βρέθηκε</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
+ <source>File &quot;%1&quot; not found</source>
+ <translation>Το αρχείο &quot;%1&quot; δεν βρέθηκε</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
+ <source>Missing yuzu Account</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
+ <source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <source>Error opening URL</source>
+ <translation>Σφάλμα κατα το άνοιγμα του URL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
+ <source>Unable to open the URL &quot;%1&quot;.</source>
+ <translation>Αδυναμία ανοίγματος του URL &quot;%1&quot;.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
+ <source>TAS Recording</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
+ <source>Overwrite file of player 1?</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
+ <source>Invalid config detected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
+ <source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
+ <source>Error</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
+ <source>The current game is not looking for amiibos</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
+ <source>Amiibo</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
+ <source>The current amiibo has been removed</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
+ <source>Amiibo File (%1);; All Files (*.*)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
+ <source>Load Amiibo</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
+ <source>Error opening Amiibo data file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
+ <source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
+ <source>Error reading Amiibo data file</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
+ <source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <source>Error loading Amiibo data</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
+ <source>Unable to load Amiibo data.</source>
+ <translation>Αδυναμία φόρτωσης Amiibo δεδομένων.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
+ <source>Capture Screenshot</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <source>PNG Image (*.png)</source>
+ <translation>Εικόνα PBG (*.png)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <source>TAS state: Running %1/%2</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <source>TAS state: Recording %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
+ <source>TAS state: Idle %1/%2</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
+ <source>TAS State: Invalid</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
+ <source>&amp;Stop Running</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
+ <source>Stop R&amp;ecording</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
+ <source>R&amp;ecord</source>
+ <translation type="unfinished"/>
+ </message>
+ <message numerus="yes">
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
+ <source>Building: %n shader(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
+ <source>Scale: %1x</source>
+ <comment>%1 is the resolution scaling factor</comment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <source>Speed: %1% / %2%</source>
+ <translation>Ταχύτητα: %1% / %2%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <source>Speed: %1%</source>
+ <translation>Ταχύτητα: %1%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <source>Game: %1 FPS (Unlocked)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <source>Game: %1 FPS</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
+ <source>Frame: %1 ms</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
+ <source>GPU NORMAL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
+ <source>GPU HIGH</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
+ <source>GPU EXTREME</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
+ <source>GPU ERROR</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <source>NEAREST</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
+ <source>BILINEAR</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
+ <source>BICUBIC</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
+ <source>GAUSSIAN</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
+ <source>SCALEFORCE</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
+ <source>FSR</source>
+ <translation>FSR</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
+ <source>NO AA</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
+ <source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
+ <source>yuzu was unable to locate a Switch system archive. %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <source>yuzu was unable to locate a Switch system archive: %1. %2</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
+ <source>System Archive Not Found</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
+ <source>System Archive Missing</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
+ <source>yuzu was unable to locate the Switch shared fonts. %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
+ <source>Shared Fonts Not Found</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
+ <source>Shared Font Missing</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
+ <source>Fatal Error</source>
+ <translation>Σοβαρό Σφάλμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
+ <source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
+ <source>Fatal Error encountered</source>
+ <translation>Παρουσιάστηκε Σοβαρό Σφάλμα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
+ <source>Confirm Key Rederivation</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
+ <source>You are about to force rederive all of your keys.
+If you do not know what this means or what you are doing,
+this is a potentially destructive action.
+Please make sure this is what you want
+and optionally make backups.
+
+This will delete your autogenerated key files and re-run the key derivation module.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
+ <source>Missing fuses</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
+ <source> - Missing BOOT0</source>
+ <translation>- Λείπει το BOOT0</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
+ <source> - Missing BCPKG2-1-Normal-Main</source>
+ <translation>- Λείπει το BCPKG2-1-Normal-Main</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <source> - Missing PRODINFO</source>
+ <translation>- Λείπει το PRODINFO</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
+ <source>Derivation Components Missing</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
+ <source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
+ <source>Deriving keys...
+This may take up to a minute depending
+on your system&apos;s performance.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
+ <source>Deriving Keys</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
+ <source>Select RomFS Dump Target</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
+ <source>Please select which RomFS you would like to dump.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
+ <source>Are you sure you want to close yuzu?</source>
+ <translation>Είστε σίγουροι ότι θέλετε να κλείσετε το yuzu;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
+ <source>yuzu</source>
+ <translation>yuzu</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
+ <source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
+ <source>The currently running application has requested yuzu to not exit.
+
+Would you like to bypass this and exit anyway?</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>GRenderWindow</name>
+ <message>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
+ <source>OpenGL not available!</source>
+ <translation>Το OpenGL δεν είναι διαθέσιμο!</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
+ <source>yuzu has not been compiled with OpenGL support.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
+ <source>Error while initializing OpenGL!</source>
+ <translation>Σφάλμα κατα την αρχικοποίηση του OpenGL!</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
+ <source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
+ <source>Error while initializing OpenGL 4.6!</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
+ <source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
+ <source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>GameList</name>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="337"/>
+ <source>Name</source>
+ <translation>Όνομα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="338"/>
+ <source>Compatibility</source>
+ <translation>Συμβατότητα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="340"/>
+ <source>Add-ons</source>
+ <translation>Πρόσθετα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="342"/>
+ <source>File type</source>
+ <translation>Τύπος αρχείου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="343"/>
+ <source>Size</source>
+ <translation>Μέγεθος</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="535"/>
+ <source>Favorite</source>
+ <translation>Αγαπημένο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="537"/>
+ <source>Start Game</source>
+ <translation>Έναρξη παιχνιδιού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="539"/>
+ <source>Start Game without Custom Configuration</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="541"/>
+ <source>Open Save Data Location</source>
+ <translation>Άνοιγμα Τοποθεσίας Αποθήκευσης Δεδομένων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="542"/>
+ <source>Open Mod Data Location</source>
+ <translation>Άνοιγμα Τοποθεσίας Δεδομένων Mod</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="544"/>
+ <source>Open Transferable Pipeline Cache</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="546"/>
+ <source>Remove</source>
+ <translation>Αφαίρεση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="547"/>
+ <source>Remove Installed Update</source>
+ <translation>Αφαίρεση Εγκατεστημένης Ενημέρωσης</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="548"/>
+ <source>Remove All Installed DLC</source>
+ <translation>Αφαίρεση Όλων των Εγκατεστημένων DLC</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="549"/>
+ <source>Remove Custom Configuration</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="550"/>
+ <source>Remove OpenGL Pipeline Cache</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="551"/>
+ <source>Remove Vulkan Pipeline Cache</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="553"/>
+ <source>Remove All Pipeline Caches</source>
+ <translation>Καταργήστε Όλη την Κρυφή μνήμη του Pipeline</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="554"/>
+ <source>Remove All Installed Contents</source>
+ <translation>Καταργήστε Όλο το Εγκατεστημένο Περιεχόμενο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="555"/>
+ <location filename="../../src/yuzu/game_list.cpp" line="556"/>
+ <source>Dump RomFS</source>
+ <translation>Απόθεση του RomFS</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="557"/>
+ <source>Dump RomFS to SDMC</source>
+ <translation>Απόθεση του RomFS στο SDMC</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="558"/>
+ <source>Copy Title ID to Clipboard</source>
+ <translation>Αντιγραφή του Title ID στο Πρόχειρο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="559"/>
+ <source>Navigate to GameDB entry</source>
+ <translation>Μεταβείτε στην καταχώρηση GameDB</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="561"/>
+ <source>Properties</source>
+ <translation>Ιδιότητες</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="633"/>
+ <source>Scan Subfolders</source>
+ <translation>Σκανάρισμα Υποφακέλων</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="634"/>
+ <source>Remove Game Directory</source>
+ <translation>Αφαίρεση Φακέλου Παιχνιδιών</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="653"/>
+ <source>▲ Move Up</source>
+ <translation>▲ Μετακίνηση Επάνω</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="654"/>
+ <source>▼ Move Down</source>
+ <translation>▼ Μετακίνηση Κάτω</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="655"/>
+ <source>Open Directory Location</source>
+ <translation>Ανοίξτε την Τοποθεσία Καταλόγου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="700"/>
+ <source>Clear</source>
+ <translation>Καθαρισμός</translation>
+ </message>
+</context>
+<context>
+ <name>GameListItemCompat</name>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
+ <source>Perfect</source>
+ <translation>Τέλεια</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
+ <source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
+any workarounds needed.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <source>Great</source>
+ <translation>Καλά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
+workarounds.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <source>Okay</source>
+ <translation>Okay</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
+workarounds.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <source>Bad</source>
+ <translation>Άσχημα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
+even with workarounds.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <source>Intro/Menu</source>
+ <translation>Εισαγωγή/Μενου</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
+Screen.</source>
+ <translation>Το παιχνίδι δεν μπορεί να παιχτεί εντελώς λόγω σημαντικών προβλημάτων γραφικών ή ήχου.
+Δεν είναι δυνατή η πρόοδος μετά την Αρχική Οθόνη.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <source>Won&apos;t Boot</source>
+ <translation>Δεν ξεκινά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <source>The game crashes when attempting to startup.</source>
+ <translation>Το παιχνίδι διακόπτεται κατά την προσπάθεια εκκίνησης.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <source>Not Tested</source>
+ <translation>Μη Τεσταρισμένο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <source>The game has not yet been tested.</source>
+ <translation>Το παιχνίδι δεν έχει ακόμα τεσταριστεί.</translation>
+ </message>
+</context>
+<context>
+ <name>GameListPlaceholder</name>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="873"/>
+ <source>Double-click to add a new folder to the game list</source>
+ <translation>Διπλο-κλικ για προσθήκη νεου φακέλου στη λίστα παιχνιδιών</translation>
+ </message>
+</context>
+<context>
+ <name>GameListSearchField</name>
+ <message numerus="yes">
+ <location filename="../../src/yuzu/game_list.cpp" line="87"/>
+ <source>%1 of %n result(s)</source>
+ <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="130"/>
+ <source>Filter:</source>
+ <translation>Φίλτρο:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list.cpp" line="133"/>
+ <source>Enter pattern to filter</source>
+ <translation>Εισαγάγετε μοτίβο για φιλτράρισμα</translation>
+ </message>
+</context>
+<context>
+ <name>InstallDialog</name>
+ <message>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
+ <source>Please confirm these are the files you wish to install.</source>
+ <translation>Επιβεβαιώστε ότι αυτά είναι τα αρχεία που θέλετε να εγκαταστήσετε.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
+ <source>Installing an Update or DLC will overwrite the previously installed one.</source>
+ <translation>Η εγκατάσταση μιας Ενημέρωσης ή DLC θα αντικαταστήσει το προηγουμένως εγκατεστημένο.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
+ <source>Install</source>
+ <translation>Εγκατάσταση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
+ <source>Install Files to NAND</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>LimitableInputDialog</name>
+ <message>
+ <location filename="../../src/yuzu/util/limitable_input_dialog.cpp" line="62"/>
+ <source>The text can't contain any of the following characters:
+%1</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>LoadingScreen</name>
+ <message>
+ <location filename="../../src/yuzu/loading_screen.ui" line="84"/>
+ <source>Loading Shaders 387 / 1628</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/loading_screen.ui" line="121"/>
+ <source>Loading Shaders %v out of %m</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/loading_screen.ui" line="135"/>
+ <source>Estimated Time 5m 4s</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
+ <source>Loading...</source>
+ <translation>Φόρτωση...</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
+ <source>Loading Shaders %1 / %2</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
+ <source>Launching...</source>
+ <translation>Εκκίνηση...</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
+ <source>Estimated Time %1</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MainWindow</name>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="14"/>
+ <source>yuzu</source>
+ <translation>yuzu</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="44"/>
+ <source>&amp;File</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="48"/>
+ <source>&amp;Recent Files</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="67"/>
+ <source>&amp;Emulation</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="78"/>
+ <source>&amp;View</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="82"/>
+ <source>&amp;Reset Window Size</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="87"/>
+ <source>&amp;Debugging</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="92"/>
+ <source>Reset Window Size to &amp;720p</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="95"/>
+ <source>Reset Window Size to 720p</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="100"/>
+ <source>Reset Window Size to &amp;900p</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="103"/>
+ <source>Reset Window Size to 900p</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="108"/>
+ <source>Reset Window Size to &amp;1080p</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="111"/>
+ <source>Reset Window Size to 1080p</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="125"/>
+ <source>&amp;Tools</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="129"/>
+ <source>&amp;TAS</source>
+ <translation>&amp;TAS</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="144"/>
+ <source>&amp;Help</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="164"/>
+ <source>&amp;Install Files to NAND...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="169"/>
+ <source>L&amp;oad File...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="174"/>
+ <source>Load &amp;Folder...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="179"/>
+ <source>E&amp;xit</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="187"/>
+ <source>&amp;Pause</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="195"/>
+ <source>&amp;Stop</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="200"/>
+ <source>&amp;Reinitialize keys...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="205"/>
+ <source>&amp;About yuzu</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="213"/>
+ <source>Single &amp;Window Mode</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="218"/>
+ <source>Con&amp;figure...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="226"/>
+ <source>Display D&amp;ock Widget Headers</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="234"/>
+ <source>Show &amp;Filter Bar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="242"/>
+ <source>Show &amp;Status Bar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="245"/>
+ <source>Show Status Bar</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="253"/>
+ <source>F&amp;ullscreen</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="261"/>
+ <source>&amp;Restart</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="269"/>
+ <source>Load/Remove &amp;Amiibo...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="277"/>
+ <source>&amp;Report Compatibility</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="285"/>
+ <source>Open &amp;Mods Page</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="290"/>
+ <source>Open &amp;Quickstart Guide</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="295"/>
+ <source>&amp;FAQ</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="300"/>
+ <source>Open &amp;yuzu Folder</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="308"/>
+ <source>&amp;Capture Screenshot</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="313"/>
+ <source>&amp;Configure TAS...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="321"/>
+ <source>Configure C&amp;urrent Game...</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="329"/>
+ <source>&amp;Start</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="337"/>
+ <source>&amp;Reset</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.ui" line="345"/>
+ <source>R&amp;ecord</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>MicroProfileDialog</name>
+ <message>
+ <location filename="../../src/yuzu/debugger/profiler.cpp" line="51"/>
+ <source>&amp;MicroProfile</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>OverlayDialog</name>
+ <message>
+ <location filename="../../src/yuzu/util/overlay_dialog.ui" line="14"/>
+ <source>Dialog</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/util/overlay_dialog.ui" line="134"/>
+ <location filename="../../src/yuzu/util/overlay_dialog.ui" line="353"/>
+ <source>Cancel</source>
+ <translation>Ακύρωση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/util/overlay_dialog.ui" line="152"/>
+ <location filename="../../src/yuzu/util/overlay_dialog.ui" line="371"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/util/overlay_dialog.ui" line="313"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:18pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>PlayerControlPreview</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player_widget.cpp" line="1576"/>
+ <source>START/PAUSE</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>QObject</name>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
+ <source>Installed SD Titles</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
+ <source>Installed NAND Titles</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
+ <source>System Titles</source>
+ <translation>Τίτλοι Συστήματος</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
+ <source>Add New Game Directory</source>
+ <translation>Προσθήκη Νέας Τοποθεσίας Παιχνιδιών</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
+ <source>Favorites</source>
+ <translation>Αγαπημένα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
+ <source>Shift</source>
+ <translation>Shift</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <source>Ctrl</source>
+ <translation>Ctrl</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <source>Alt</source>
+ <translation>Alt</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
+ <source>[not set]</source>
+ <translation>[μη ορισμένο]</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
+ <source>Hat %1 %2</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <source>Axis %1%2</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
+ <source>Button %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
+ <source>[unknown]</source>
+ <translation>[άγνωστο]</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
+ <source>Left</source>
+ <translation>Αριστερά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <source>Right</source>
+ <translation>Δεξιά</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <source>Down</source>
+ <translation>Κάτω</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <source>Up</source>
+ <translation>Πάνω</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <source>Z</source>
+ <translation>Z</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <source>R</source>
+ <translation>R</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <source>L</source>
+ <translation>L</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <source>A</source>
+ <translation>A</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <source>B</source>
+ <translation>B</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <source>X</source>
+ <translation>Χ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <source>Y</source>
+ <translation>Υ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <source>Start</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <source>L1</source>
+ <translation>L1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <source>L2</source>
+ <translation>L2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <source>L3</source>
+ <translation>L3</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <source>R1</source>
+ <translation>R1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <source>R2</source>
+ <translation>R2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <source>R3</source>
+ <translation>R3</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <source>Circle</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <source>Cross</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <source>Square</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <source>Triangle</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <source>Share</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <source>Options</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <source>Home</source>
+ <translation>Αρχική</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <source>Touch</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <source>Wheel</source>
+ <comment>Indicates the mouse wheel</comment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <source>Backward</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <source>Forward</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <source>Task</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <source>Extra</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <source>[undefined]</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
+ <source>%1%2%3</source>
+ <translation>%1%2%3</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
+ <source>[invalid]</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
+ <source>%1%2Hat %3</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <source>%1%2Axis %3</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
+ <source>%1%2Axis %3,%4,%5</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
+ <source>%1%2Motion %3</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
+ <source>%1%2Button %3</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
+ <source>[unused]</source>
+ <translation>[άδειο]</translation>
+ </message>
+</context>
+<context>
+ <name>QtControllerSelectorDialog</name>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="14"/>
+ <source>Controller Applet</source>
+ <translation>Applet Χειρισμού</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="129"/>
+ <source>Supported Controller Types:</source>
+ <translation>Υποστηριζόμενοι Τύποι Χειριστηρίου:</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="282"/>
+ <source>Players:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="300"/>
+ <source>1 - 8</source>
+ <translation>1 - 8</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="418"/>
+ <source>P4</source>
+ <translation>P4</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="514"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="711"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="912"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1222"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1459"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
+ <source>Pro Controller</source>
+ <translation>Pro Controller</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="519"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="716"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="917"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1227"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1464"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
+ <source>Dual Joycons</source>
+ <translation>Διπλά Joycons</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="524"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="721"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="922"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1232"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1469"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
+ <source>Left Joycon</source>
+ <translation>Αριστερό Joycon</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="529"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="726"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="927"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1237"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1474"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
+ <source>Right Joycon</source>
+ <translation>Δεξί Joycon</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="538"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="735"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="941"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1246"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1483"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1680"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1881"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2078"/>
+ <source>Use Current Config</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="615"/>
+ <source>P2</source>
+ <translation>P2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="812"/>
+ <source>P1</source>
+ <translation>P1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
+ <source>Handheld</source>
+ <translation>Handheld</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1126"/>
+ <source>P3</source>
+ <translation>P3</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1363"/>
+ <source>P7</source>
+ <translation>P7</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1560"/>
+ <source>P8</source>
+ <translation>P8</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1757"/>
+ <source>P5</source>
+ <translation>P5</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="1958"/>
+ <source>P6</source>
+ <translation>P6</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2272"/>
+ <source>Console Mode</source>
+ <translation>Λειτουργία Κονσόλας</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2293"/>
+ <source>Docked</source>
+ <translation>Docked</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2303"/>
+ <source>Undocked</source>
+ <translation>Undocked</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2313"/>
+ <source>Vibration</source>
+ <translation>Δόνηση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2349"/>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2395"/>
+ <source>Configure</source>
+ <translation>Διαμόρφωση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2359"/>
+ <source>Motion</source>
+ <translation>Κίνηση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2405"/>
+ <source>Profiles</source>
+ <translation>Τα προφίλ</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2432"/>
+ <source>Create</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2467"/>
+ <source>Controllers</source>
+ <translation>Χειριστήρια</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2481"/>
+ <source>1</source>
+ <translation>1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2508"/>
+ <source>2</source>
+ <translation>2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2518"/>
+ <source>4</source>
+ <translation>4</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2528"/>
+ <source>3</source>
+ <translation>3</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2538"/>
+ <source>Connected</source>
+ <translation>Συνδεδεμένο</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2552"/>
+ <source>5</source>
+ <translation>5</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2569"/>
+ <source>7</source>
+ <translation>7</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2586"/>
+ <source>6</source>
+ <translation>6</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.ui" line="2596"/>
+ <source>8</source>
+ <translation>8</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
+ <source>GameCube Controller</source>
+ <translation>Χειριστήριο GameCube</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
+ <source>Poke Ball Plus</source>
+ <translation>Poke Ball Plus</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
+ <source>NES Controller</source>
+ <translation>Χειριστήριο NES</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
+ <source>SNES Controller</source>
+ <translation>Χειριστήριο SNES</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
+ <source>N64 Controller</source>
+ <translation>Χειριστήριο N64</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
+ <source>Sega Genesis</source>
+ <translation>Sega Genesis</translation>
+ </message>
+</context>
+<context>
+ <name>QtErrorDisplay</name>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_error.cpp" line="21"/>
+ <location filename="../../src/yuzu/applets/qt_error.cpp" line="34"/>
+ <location filename="../../src/yuzu/applets/qt_error.cpp" line="49"/>
+ <source>Error Code: %1-%2 (0x%3)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_error.cpp" line="25"/>
+ <source>An error has occurred.
+Please try again or contact the developer of the software.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_error.cpp" line="38"/>
+ <source>An error occurred on %1 at %2.
+Please try again or contact the developer of the software.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_error.cpp" line="53"/>
+ <source>An error has occurred.
+
+%1
+
+%2</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>QtProfileSelectionDialog</name>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
+ <source>%1
+%2</source>
+ <comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
+ <translation>%1
+%2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
+ <source>Select a user:</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
+ <source>Users</source>
+ <translation>Χρήστες</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
+ <source>Profile Selector</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>QtSoftwareKeyboardDialog</name>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_software_keyboard.ui" line="14"/>
+ <source>Software Keyboard</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_software_keyboard.ui" line="199"/>
+ <source>Enter Text</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_software_keyboard.ui" line="479"/>
+ <source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:26pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:26pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_software_keyboard.cpp" line="399"/>
+ <location filename="../../src/yuzu/applets/qt_software_keyboard.cpp" line="409"/>
+ <source>OK</source>
+ <translation>OK</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/applets/qt_software_keyboard.cpp" line="409"/>
+ <source>Cancel</source>
+ <translation>Ακύρωση</translation>
+ </message>
+</context>
+<context>
+ <name>SequenceDialog</name>
+ <message>
+ <location filename="../../src/yuzu/util/sequence_dialog/sequence_dialog.cpp" line="11"/>
+ <source>Enter a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WaitTreeCallstack</name>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
+ <source>Call stack</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WaitTreeMutexInfo</name>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
+ <source>waiting for mutex 0x%1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
+ <source>has waiters: %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <source>owner handle: 0x%1</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WaitTreeObjectList</name>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
+ <source>waiting for all objects</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
+ <source>waiting for one of the following objects</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WaitTreeSynchronizationObject</name>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
+ <source>[%1] %2 %3</source>
+ <translation>[%1] %2 %3</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
+ <source>waited by no thread</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WaitTreeThread</name>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
+ <source>runnable</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <source>paused</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
+ <source>sleeping</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
+ <source>waiting for IPC reply</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
+ <source>waiting for objects</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
+ <source>waiting for condition variable</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
+ <source>waiting for address arbiter</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
+ <source>waiting for suspend resume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
+ <source>waiting</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
+ <source>initialized</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
+ <source>terminated</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
+ <source>unknown</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
+ <source> PC = 0x%1 LR = 0x%2</source>
+ <translation> PC = 0x%1 LR = 0x%2</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
+ <source>ideal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
+ <source>core %1</source>
+ <translation>πυρήνας %1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
+ <source>processor = %1</source>
+ <translation>επεξεργαστής = %1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <source>ideal core = %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <source>affinity mask = %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
+ <source>thread id = %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <source>priority = %1(current) / %2(normal)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
+ <source>last running ticks = %1</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
+ <source>not waiting for mutex</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WaitTreeThreadList</name>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
+ <source>waited by thread</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+<context>
+ <name>WaitTreeWidget</name>
+ <message>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
+ <source>&amp;Wait Tree</source>
+ <translation type="unfinished"/>
+ </message>
+</context>
+</TS> \ No newline at end of file
diff --git a/dist/languages/es.ts b/dist/languages/es.ts
index d9deac0d9..a815852e4 100644
--- a/dist/languages/es.ts
+++ b/dist/languages/es.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Comunicando con el servidor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Toque la esquina superior izquierda&lt;br&gt;de su trackpad.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Ahora toque la esquina inferior derecha &lt;br&gt;de su trackpad.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>¡Configuración completada!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -359,7 +359,21 @@ p, li { white-space: pre-wrap; }
<translation>Desactivar comprobación del espacio de destino</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Esta opción mejora la velocidad basándose solamente en las semánticas de cmpxchg para asegurar la seguridad de las instrucciones de acceso exclusivo. Esto podría ocasionar en bloqueos y otras condiciones de ejecución.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation>Ignorar monitorización global</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Los ajustes de la CPU sólo están disponibles cuando no se esté ejecutando ningún juego.</translation>
</message>
@@ -519,11 +533,45 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>Activar emulación MMU del Host</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation>Activar Emulación MMU a través del anfitrión (Instrucciones de memoria general)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Esta optimización acelera exclusivamente los accesos a la memoria por el programa huésped.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Activarlo causa que las lecturas/escrituras exclusivas de la memoria del huesped puedan ser realizadas directamente en la memoria y hacer uso de los anfitriones MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Desactivar esto fuerza a toda la memoria exclusiva a acceder al uso de Emulación MMU por Software.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation>Habilitar Emulacion MMU a través del anfitrión (Instrucciones de memoría exclusiva)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Esta optimización aumenta la velocidad de los accesos de la memoria exclusiva del programa huesped.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Habilitándolo reduce la sobrecarga de las fallas de memoria rápida de el acceso de la memoria exclusiva.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation>Habilitar recompilación de las instrucciones de memoria exclusiva</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Los ajustes de la CPU sólo están disponibles cuando no se esté ejecutando ningún juego.</translation>
</message>
@@ -681,7 +729,12 @@ p, li { white-space: pre-wrap; }
<translation>Habilitar todo Tipo de Controladores</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation>Deshabilitar Applet Web**</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Esto se reiniciará automáticamente cuando yuzu se cierre.</translation>
</message>
@@ -731,78 +784,78 @@ p, li { white-space: pre-wrap; }
<translation>Configuración de yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Depuración</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Sistema de archivos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>General</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>Gráficosavanzados</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Teclas de acceso rápido</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Controles</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Perfiles</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Red</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Lista de juegos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1004,7 +1057,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="148"/>
<source>Extended memory layout (6GB DRAM)</source>
- <translation type="unfinished"/>
+ <translation>Interfaz de memoria extendida (6GB DRAM)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="155"/>
@@ -1024,7 +1077,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="176"/>
<source>Mute audio when in background</source>
- <translation type="unfinished"/>
+ <translation>Silenciar el audio cuando este en segundo plano</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="183"/>
@@ -1037,12 +1090,12 @@ p, li { white-space: pre-wrap; }
<translation>Reiniciar todos los ajustes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Esto reiniciará y eliminará todas las configuraciones de los juegos. No eliminará ni los directorios de juego, ni los perfiles, ni los perfiles de los mandos. ¿Continuar?</translation>
</message>
@@ -1237,7 +1290,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="432"/>
<source>AMD FidelityFX™️ Super Resolution (Vulkan Only)</source>
- <translation type="unfinished"/>
+ <translation>AMD FidelityFX™️ Super Resolution (Solo Vulkan)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="458"/>
@@ -1271,7 +1324,7 @@ p, li { white-space: pre-wrap; }
<translation>Color de fondo:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly shaders, sólo NVIDIA)</translation>
</message>
@@ -1404,7 +1457,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="94"/>
<source>Controller Hotkey</source>
- <translation type="unfinished"/>
+ <translation>Atajo del Control</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="124"/>
@@ -1422,7 +1475,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="144"/>
<source>Home+%1</source>
- <translation type="unfinished"/>
+ <translation>Home+%1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="158"/>
@@ -1432,7 +1485,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="228"/>
<source>Invalid</source>
- <translation type="unfinished"/>
+ <translation>Inválido</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="329"/>
@@ -1447,12 +1500,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="351"/>
<source>Conflicting Button Sequence</source>
- <translation type="unfinished"/>
+ <translation>Secuencia de botones conflictiva</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="352"/>
<source>The default button sequence is already assigned to: %1</source>
- <translation type="unfinished"/>
+ <translation>La secuencia de botones por defecto ya esta asignada a: %1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="366"/>
@@ -1777,7 +1830,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2666"/>
<source>Controller navigation</source>
- <translation type="unfinished"/>
+ <translation>Navegación de controles</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2679"/>
@@ -1839,7 +1892,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Palanca izquierda</translation>
</message>
@@ -1933,14 +1986,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1959,7 +2012,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Más</translation>
</message>
@@ -1972,15 +2025,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2037,230 +2090,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Palanca derecha</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Borrar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[no definido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Alternar botón</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>Invertir botón</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Invertir ejes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>Configurar umbral</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Seleccione un valor entre 0% y 100%.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
- <translation type="unfinished"/>
+ <translation>Configurar umbral del Giroscopio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Configuración de palanca analógico</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Después de pulsar OK, mueve primero el joystick de manera horizontal, y luego verticalmente.
Para invertir los ejes, mueve primero el joystick de manera vertical, y luego horizontalmente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
- <translation type="unfinished"/>
+ <translation>Centrar ejes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Punto muerto: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Rango del modificador: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Controlador Pro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Joycons duales</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Joycon izquierdo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Joycon derecho</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Portátil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Controlador de GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>Controlador NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>Controlador SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>Controlador N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Inicio / Pausa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Palanca de control</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>¡Agita!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[esperando]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Nuevo perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Introduce un nombre de perfil:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Crear perfil de entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>¡El nombre de perfil introducido no es válido!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Error al crear el perfil de entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Eliminar perfil de entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Error al eliminar el perfil de entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Cargar perfil de entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Error al cargar el perfil de entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Guardar perfil de entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Error al guardar el perfil de entrada &quot;%1&quot;</translation>
</message>
@@ -2308,7 +2361,7 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Configurar</translation>
</message>
@@ -2344,7 +2397,7 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Probar</translation>
</message>
@@ -2359,82 +2412,82 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
<translation>Eliminar servidor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Más información&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>El número del puerto tiene caracteres que no son válidos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>El puerto debe estar en un rango entre 0 y 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>Dirección IP no válida</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Este servidor UDP ya existe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>No es posible añadir más de 8 servidores</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Probando</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Configurando</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Prueba existosa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Se han recibido con éxito los datos del servidor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Prueba fallida</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>No se han podido recibir datos válidos del servidor.&lt;br&gt;Por favor, verifica que el servidor esté configurado correctamente y que la dirección y el puerto sean correctos.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>La prueba de UDP o la configuración de la calibración está en curso.&lt;br&gt;Por favor, espera a que termine el proceso.</translation>
</message>
@@ -2462,7 +2515,7 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
<translation>Interfaz de red</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Ninguna</translation>
</message>
@@ -2515,47 +2568,47 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
<translation>Desarrollador</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Extras / Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>General</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Gráficos avanz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Propiedades</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Usar configuración global (%1)</translation>
</message>
@@ -2573,12 +2626,12 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
<translation>Extras / Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Nombre del parche</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Versión</translation>
</message>
@@ -2636,7 +2689,7 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
<translation>El sistema de perfiles sólo se encuentra disponible cuando no se esté ejecutando ningún juego.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2644,92 +2697,92 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Introduzca el nombre</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Usuarios</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Introduce un nombre para el nuevo usuario:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Introduce un nuevo nombre de usuario:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation> Confirmar eliminación</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Estás a punto de eliminar al usuario &quot;%1&quot; ¿Estás seguro?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Selecciona una imagen de usuario</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Imagenes JPEG (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Error al eliminar la imagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Ha ocurrido un error al intentar sobrescribir la imagen anterior en: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Error al eliminar el archivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>No se puede eliminar el archivo existente: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Error al crear el directorio de imagen del usuario</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>No se puede crear el directorio %1 para almacenar imágenes de usuario.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Error al copiar la imagen de usuario.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>No se puede copiar la imagen de %1 a %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Error al redimensionar la imagen de usuario</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>No se puede cambiar el tamaño de la imagen</translation>
</message>
@@ -3173,17 +3226,17 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
<translation>Los ajustes del sistema sólo se encuentran disponibles cuando no se esté ejecutando ningún juego.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Esto reemplazará tu Switch virtual con una nueva. Tu Switch virtual actual no será recuperable. Esto podría causar efectos inesperados en determinados juegos. Si usas un archivo de guardado de configuración obsoleto, esto podría fallar. ¿Continuar?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Advertencia</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>ID de consola: 0x%1</translation>
</message>
@@ -3299,54 +3352,54 @@ Arrastra los puntos para cambiar de posición, o haz doble clic en las celdas de
<translation>Borrar punto</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Botón</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Crear perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Introduce un nombre para el nuevo perfil:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Borrar perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>¿Borrar el perfil %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Renombrar perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Nuevo nombre:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[presionar tecla]</translation>
</message>
@@ -3562,7 +3615,7 @@ Arrastra los puntos para cambiar de posición, o haz doble clic en las celdas de
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="23"/>
<source>Press any controller button to vibrate the controller.</source>
- <translation type="unfinished"/>
+ <translation>Presiona cualquier botón para hacer vibrar el control.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="30"/>
@@ -3784,481 +3837,483 @@ Arrastra los puntos para cambiar de posición, o haz doble clic en las celdas de
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Los datos de uso anónimos se recogen&lt;/a&gt; para ayudar a mejorar yuzu. &lt;br/&gt;&lt;br/&gt;¿Deseas compartir tus datos de uso con nosotros?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetría </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Cargando Web applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Desactivar Web applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>Desactivar la web applet causará que ésta no se muestre más durante el resto de la sesión. Puede causar comportamientos imprevistos y sólo debe ser usado con Super Mario 3D All-Stars. ¿De verdad quieres desactivar la web applet?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation>Deshabilitar el Applet Web puede causar comportamientos no definidos y debería solo ser usado con Super Mario 3D All-Stars. ¿Estas seguro que quieres deshabilitar el Applet Web?
+(Esto puede ser re-habilitado en las configuraciones Debug.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>La cantidad de shaders que se están construyendo actualmente</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>El multiplicador de escala de resolución seleccionado actualmente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>La velocidad de emulación actual. Los valores superiores o inferiores al 100% indican que la emulación se está ejecutando más rápido o más lento que en una Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>La cantidad de fotogramas por segundo que se está mostrando el juego actualmente. Esto variará de un juego a otro y de una escena a otra.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tiempo que lleva emular un fotograma de la Switch, sin tener en cuenta la limitación de fotogramas o sincronización vertical. Para una emulación óptima, este valor debería ser como máximo de 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>DOCK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Eliminar archivos recientes</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Continuar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Pausar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation>yuzu está ejecutando un juego</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Advertencia: formato del juego obsoleto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Está utilizando el formato de directorio de ROM deconstruido para este juego, que es un formato desactualizado que ha sido reemplazado por otros, como los NCA, NAX, XCI o NSP. Los directorios de ROM deconstruidos carecen de íconos, metadatos y soporte de actualizaciones.&lt;br&gt;&lt;br&gt;Para ver una explicación de los diversos formatos de Switch que soporta yuzu,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;echa un vistazo a nuestra wiki&lt;/a&gt;. Este mensaje no se volverá a mostrar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>¡Error al cargar la ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>El formato de la ROM no es compatible.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Se ha producido un error al inicializar el núcleo de video.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu ha encontrado un error al ejecutar el núcleo de video. Esto suele ocurrir al no tener los controladores de la GPU actualizados, incluyendo los integrados. Por favor, revisa el registro para más detalles. Para más información sobre cómo acceder al registro, por favor, consulta la siguiente página: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Como cargar el archivo de registro&lt;/a&gt;. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>¡Error al cargar la ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Por favor, sigue &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guía de inicio rápido de yuzu&lt;/a&gt; para revolcar los archivos.&lt;br&gt;Puedes consultar la wiki de yuzu&lt;/a&gt; o el Discord de yuzu&lt;/a&gt; para obtener ayuda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Error desconocido. Por favor, consulte el archivo de registro para ver más detalles.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Datos de guardado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Datos de mods</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Error al abrir la carpeta %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>¡La carpeta no existe!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Error al abrir el caché transferible de shaders</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>No se pudo crear el directorio de la caché de los shaders para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Contenidos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Actualización</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Eliminar entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>¿Eliminar el juego instalado %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Se ha eliminado con éxito</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>Se ha eliminado con éxito el juego base instalado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Error al eliminar %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>El juego base no está instalado en el NAND y no se puede eliminar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Se ha eliminado con éxito la actualización instalada.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>No hay ninguna actualización instalada para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>No hay ningún DLC instalado para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Se ha eliminado con éxito %1 DLC instalado(s).</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>¿Deseas eliminar el caché transferible de shaders de OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>¿Deseas eliminar el caché transferible de shaders de Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>¿Deseas eliminar todo el caché transferible de shaders?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>¿Deseas eliminar la configuración personalizada del juego?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Eliminar archivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Error al eliminar la caché de shaders transferibles</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>No existe caché de shaders para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>El caché de shaders transferibles se ha eliminado con éxito.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>No se ha podido eliminar la caché de shaders transferibles.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Error al eliminar las cachés de shaders transferibles</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Cachés de shaders transferibles eliminadas con éxito.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>No se ha podido eliminar el directorio de cachés de shaders transferibles.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Error al eliminar la configuración personalizada del juego</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>No existe una configuración personalizada para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Se eliminó con éxito la configuración personalizada del juego.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>No se ha podido eliminar la configuración personalizada del juego.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>¡La extracción de RomFS ha fallado!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Se ha producido un error al copiar los archivos RomFS o el usuario ha cancelado la operación.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Completo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Esquema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Elegir método de volcado de RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Seleccione la forma en que quieras volcar el RomFS. &lt;br&gt;Copiará todos los archivos en el nuevo directorio &lt;br&gt; mientras que el esqueleto solo creará la estructura del directorio.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>No hay suficiente espacio en %1 para extraer el RomFS. Por favor, libera espacio o elige otro directorio de volcado en Emulación &gt; Configuración &gt; Sistema &gt; Sistema de archivos &gt; Raíz de volcado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Extrayendo RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>¡La extracción RomFS ha tenido éxito!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>La operación se completó con éxito.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Error al intentar abrir %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Seleccionar directorio</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Propiedades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>No se pueden cargar las propiedades del juego.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Ejecutable de Switch (%1);;Todos los archivos (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Cargar archivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Abrir el directorio de la ROM extraída</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Directorio seleccionado no válido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>El directorio que ha seleccionado no contiene ningún archivo &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Archivo de Switch Instalable (*.nca *.nsp *.xci);;Archivo de contenidos de Nintendo (*.nca);;Paquete de envío de Nintendo (*.nsp);;Imagen de cartucho NX (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Instalar archivos</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n archivo(s) restantes</numerusform><numerusform>%n archivo(s) restantes</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instalando el archivo &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Instalar resultados</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Para evitar posibles conflictos, no recomendamos a los usuarios que instalen juegos base en el NAND.
Por favor, utiliza esta función sólo para instalar actualizaciones y DLCs.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n archivo(s) recién instalado/s
@@ -4266,7 +4321,7 @@ Por favor, utiliza esta función sólo para instalar actualizaciones y DLCs.</tr
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n archivo(s) recién sobreescrito/s
@@ -4274,7 +4329,7 @@ Por favor, utiliza esta función sólo para instalar actualizaciones y DLCs.</tr
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n archivo(s) no se instaló/instalaron
@@ -4282,401 +4337,401 @@ Por favor, utiliza esta función sólo para instalar actualizaciones y DLCs.</tr
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Aplicación del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Archivo del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Actualización de la aplicación del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Paquete de firmware (Tipo A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Paquete de firmware (Tipo B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Juego</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Actualización de juego</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>DLC del juego</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Titulo delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Seleccione el tipo de instalación NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Seleccione el tipo de título en el que deseas instalar este NCA como:
(En la mayoría de los casos, el &apos;Juego&apos; predeterminado está bien).</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Fallo en la instalación</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>El tipo de título que seleccionó para el NCA no es válido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Archivo no encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Archivo &quot;%1&quot; no encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>Aceptar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Falta la cuenta de Yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Para enviar un caso de prueba de compatibilidad de juegos, debes vincular tu cuenta de yuzu.&lt;br&gt;&lt;br/&gt; Para vincular tu cuenta de yuzu, ve a Emulación &amp;gt; Configuración &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Error al abrir la URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>No se puede abrir la URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>Grabación TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>¿Sobrescribir archivo del jugador 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Configuración no válida detectada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>El controlador del modo portátil no puede ser usado en el modo sobremesa. Se seleccionará el controlador Pro en su lugar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
- <translation type="unfinished"/>
+ <translation>Error</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
- <translation type="unfinished"/>
+ <translation>El juego actual no esta buscando amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
- <translation type="unfinished"/>
+ <translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
- <translation type="unfinished"/>
+ <translation>El amiibo actual ha sido extraído</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Archivo amiibo (%1);; Todos los archivos (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Cargar amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Error al abrir el archivo de datos amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>No se puede abrir el archivo amiibo &quot;%1&quot; para leer.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Error al leer el archivo de datos amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>No se puede leer completamente los datos Amiibo. Se esperaban leer %1 bytes, pero solo se puede leer %2 bytes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Error al cargar los datos Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>No se pueden cargar los datos Amiibo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Captura de pantalla</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>Imagen PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>Estado TAS: ejecutando %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>Estado TAS: grabando %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>Estado TAS: inactivo %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>Estado TAS: nulo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>&amp;Parar de ejecutar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Iniciar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>Pausar g&amp;rabación</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>G&amp;rabar</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Creando: %n shader(s)</numerusform><numerusform>Construyendo: %n shader(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Escalado: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Velocidad: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Velocidad: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Juego: %1 FPS (desbloqueado)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Juego: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Fotogramas: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU ALTA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EXTREMA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>GPU ERROR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>PROXIMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>BILINEAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>BICÚBICO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>GAUSSIANO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>NO AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>El juego que estás intentando cargar requiere archivos adicionales de tu Switch antes de poder jugar. &lt;br/&gt;&lt;br/&gt;Para obtener más información sobre cómo obtener estos archivos, ve a la siguiente página de la wiki: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Volcar archivos del sistema y las fuentes compartidas desde una Consola Switch. &lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;¿Quieres volver a la lista de juegos? Continuar con la emulación puede provocar fallos, datos de guardado corrompidos u otros errores.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu no pudo localizar el archivo de sistema de la Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu no pudo localizar un archivo de sistema de la Switch: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Archivo del sistema no encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Faltan archivos del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu no pudo encontrar las fuentes compartidas de la Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Fuentes compartidas no encontradas</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Faltan fuentes compartidas</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Error fatal</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu ha encontrado un error fatal, consulta el registro para obtener más detalles. Para obtener más información sobre cómo acceder al registro, consulta la siguiente página: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;¿Cómo cargar el archivo de registro?&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt; Continuar con la emulación puede provocar fallos, datos de guardado corruptos u otros errores.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Error fatal encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Confirmar la clave de rederivación</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4693,37 +4748,37 @@ es lo que quieres hacer si es necesario.
Esto eliminará los archivos de las claves generadas automáticamente y volverá a ejecutar el módulo de derivación de claves.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Faltan fuses</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- Falta BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - Falta BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation> - Falta PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Faltan componentes de derivación</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Faltan las claves de encriptación. &lt;br&gt;Por favor, sigue &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guía rápida de yuzu&lt;/a&gt; para obtener todas tus claves, firmware y juegos.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4732,39 +4787,39 @@ Esto puede llevar unos minutos dependiendo
del rendimiento de su sistema.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Obtención de claves</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Selecciona el destinatario para volcar el RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Por favor, seleccione los RomFS que deseas volcar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>¿Estás seguro de que quieres cerrar yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>¿Estás seguro de que quieres detener la emulación? Cualquier progreso no guardado se perderá.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4776,38 +4831,38 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>¡OpenGL no está disponible!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu no ha sido compilado con soporte de OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>¡Error al inicializar OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Tu GPU no soporta OpenGL, o no tienes instalados los últimos controladores gráficos.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>¡Error al iniciar OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Tu GPU no soporta OpenGL 4.6, o no tienes instalado el último controlador de la tarjeta gráfica.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Es posible que la GPU no soporte una o más extensiones necesarias de OpenGL . Por favor, asegúrate de tener los últimos controladores de la tarjeta gráfica.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensiones no soportadas:&lt;br&gt;%2</translation>
</message>
@@ -4969,82 +5024,82 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfecto</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>El juego funciona a la perfección sin fallos de audio o gráficos, todas las funciones probadas funcionan según lo previsto
sin ninguna solución necesaria.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Excelente</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>El juego funciona con fallos gráficos o de audio menores y es jugable de principio a fin. Puede que sea necesario
recurrir a arreglos temporales.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Bien</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>El juego funciona con fallos gráficos o de audio sustanciales, pero el juego es jugable de principio a fin con
arreglos temporales.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Mal</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>El juego funciona, pero tiene errores gráficos o de audio. Es imposible avanzar en ciertas zonas debido a fallos
incluso con arreglos temporales.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/Menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>No es posible jugar a este juego debido a errores gráficos o de audio importantes. Es imposible avanzar mas allá de la pantalla
de inicio.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>No inicia</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>El juego se bloquea al intentar iniciar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Sin probar</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>El juego todavía no ha sido probado.</translation>
</message>
@@ -5078,22 +5133,22 @@ de inicio.</translation>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Por favor, confirma que estos son los archivos que desea instalar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Instalar una actualización o DLC reemplazará la que se instaló previamente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Instalar</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Instalar archivos al NAND...</translation>
</message>
@@ -5126,22 +5181,22 @@ de inicio.</translation>
<translation>Tiempo estimado 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Cargando...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Cargando shaders %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Iniciando...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Tiempo estimado %1</translation>
</message>
@@ -5311,7 +5366,7 @@ de inicio.</translation>
<message>
<location filename="../../src/yuzu/main.ui" line="269"/>
<source>Load/Remove &amp;Amiibo...</source>
- <translation type="unfinished"/>
+ <translation>Cargar/Extraer &amp;Amiibo...</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="277"/>
@@ -5421,284 +5476,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Títulos instalados en la SD</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Títulos instalados en NAND</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Títulos del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Añadir un nuevo directorio de juegos</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>Favoritos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[no definido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Rotación %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Eje %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Botón %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[desconocido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Izquierda</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Derecha</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Abajo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Arriba</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Comenzar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation>Círculo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation>Cruz</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation>Cuadrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation>Triángulo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>Compartir</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>Opciones</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Inicio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Táctil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
- <translation type="unfinished"/>
+ <translation>Rueda</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
- <translation type="unfinished"/>
+ <translation>Atrás</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
- <translation type="unfinished"/>
+ <translation>Adelante</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
- <translation type="unfinished"/>
+ <translation>Tarea</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
- <translation type="unfinished"/>
+ <translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[sin definir]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
- <translation type="unfinished"/>
+ <translation>%1%2%3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[inválido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation>%1%2Rotación %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eje %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eje %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2Movimiento %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation>%1%2Botón %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[no usado]</translation>
</message>
@@ -5739,7 +5794,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Controlador Pro</translation>
</message>
@@ -5752,7 +5807,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Joycons duales</translation>
</message>
@@ -5765,7 +5820,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Joycon izquierdo</translation>
</message>
@@ -5778,7 +5833,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Joycon derecho</translation>
</message>
@@ -5806,7 +5861,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Portátil</translation>
</message>
@@ -5927,32 +5982,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Controlador de GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
- <translation>Controlador NES</translation>
+ <translation>Control de NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
- <translation>Controlador SNES</translation>
+ <translation>Control de SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
- <translation>Controlador N64</translation>
+ <translation>Control de N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
@@ -5997,7 +6052,7 @@ Por favor, inténtalo de nuevo o contacta con el desarrollador del software.</tr
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -6005,17 +6060,17 @@ Por favor, inténtalo de nuevo o contacta con el desarrollador del software.</tr
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Seleccione un usuario:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Usuarios</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Selector de perfil</translation>
</message>
@@ -6068,7 +6123,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Llamadas acumuladas</translation>
</message>
@@ -6076,17 +6131,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>esperando al mutex 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>tiene receptores: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>manejo del propietario: 0x%1</translation>
</message>
@@ -6094,12 +6149,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>esperando a todos los objetos</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>esperando a uno de los siguientes objetos</translation>
</message>
@@ -6107,12 +6162,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>esperado por ningún hilo</translation>
</message>
@@ -6120,112 +6175,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>ejecutable</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>en pausa</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>reposando</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>esperando respuesta IPC</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>esperando objetos</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>esperando variable condicional</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>esperando al árbitro de dirección</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>esperando a reanudar</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>esperando</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>inicializado</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>terminado</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>desconocido</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation>PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideal</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>núcleo %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>procesador = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>núcleo ideal = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>máscara de afinidad = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>id de hilo = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>prioridad = %1(presente) / %2(normal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>últimos ticks consecutivos = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>no esperando al mutex</translation>
</message>
@@ -6233,7 +6288,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>esperado por el hilo</translation>
</message>
@@ -6241,7 +6296,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>&amp;Árbol de espera</translation>
</message>
diff --git a/dist/languages/fi.ts b/dist/languages/fi.ts
index 303718a18..1af8b5028 100644
--- a/dist/languages/fi.ts
+++ b/dist/languages/fi.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Otetaan yhteyttä palvelimeen...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Peruuta</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Kosketa kosketuslevyn vasenta yläreunaa &lt;br&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Kosketa nyt kosketuslevyn oikeaa alakulmaa &lt;br&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Konfiguraatio suoritettu!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -351,7 +351,19 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU-asetukset ovat saatavilla vain silloin, kun peli ei ole käynnissä.</translation>
</message>
@@ -489,11 +501,38 @@ Ota sisäiset sivutaulukot käyttöön</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU-asetukset ovat saatavilla vain silloin, kun peli ei ole käynnissä.</translation>
</message>
@@ -651,7 +690,12 @@ Ota sisäiset sivutaulukot käyttöön</translation>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation type="unfinished"/>
</message>
@@ -701,78 +745,78 @@ Ota sisäiset sivutaulukot käyttöön</translation>
<translation>yuzu asetukset</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Ääni</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU (prosessori)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Debuggaus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Tietojärjestelmä</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Yleiset</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Grafiikka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>Edistyneet grafiikka-asetukset</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Pikanäppäimet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Ohjainmääritykset</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Profiilit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Järjestelmä</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Pelilista</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1007,12 +1051,12 @@ Ota sisäiset sivutaulukot käyttöön</translation>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation type="unfinished"/>
</message>
@@ -1241,7 +1285,7 @@ Ota sisäiset sivutaulukot käyttöön</translation>
<translation>Taustan väri:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation type="unfinished"/>
</message>
@@ -1809,7 +1853,7 @@ Ota sisäiset sivutaulukot käyttöön</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Vasen joystick</translation>
</message>
@@ -1903,14 +1947,14 @@ Ota sisäiset sivutaulukot käyttöön</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation type="unfinished"/>
</message>
@@ -1929,7 +1973,7 @@ Ota sisäiset sivutaulukot käyttöön</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation type="unfinished"/>
</message>
@@ -1942,15 +1986,15 @@ Ota sisäiset sivutaulukot käyttöön</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation type="unfinished"/>
</message>
@@ -2007,229 +2051,229 @@ Ota sisäiset sivutaulukot käyttöön</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Oikea joystick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Tyhjennä</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[ei asetettu]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Käsikonsolimoodi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
@@ -2277,7 +2321,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Säädä</translation>
</message>
@@ -2313,7 +2357,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation type="unfinished"/>
</message>
@@ -2328,82 +2372,82 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation type="unfinished"/>
</message>
@@ -2431,7 +2475,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>None</translation>
</message>
@@ -2484,47 +2528,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Kehittäjä</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Lisäosat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Yleiset</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Järjestelmä</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU (prosessori)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Grafiikat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Ääni</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Ominaisuudet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation type="unfinished"/>
</message>
@@ -2542,12 +2586,12 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Lisäosat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Päivityksen nimi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Versio</translation>
</message>
@@ -2605,7 +2649,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2613,92 +2657,92 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Syötä nimimerkki</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Käyttäjät</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Syötä nimimerkki uudelle käyttäjälle:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Syötä uusi nimikerkki</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Vahvista poistaminen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Olet poistamassa käyttäjän nimimerkillä &quot;%1&quot;. Oletko varma?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Valitse käyttäjän kuva</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>JPEG kuvat (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Virhe poistaessa kuvaa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Edellistä kuvaa korvatessa tapahtui virhe %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Virhe poistaessa tiedostoa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Olemassa olevan tiedoston %1 ei onnistu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Virhe luodessa käyttäjäkuvakansiota</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Kansiota %1 käyttäjäkuvien tallentamiseksi ei voitu luoda</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Virhe kopioidessa käyttäjäkuvaa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Kuvaa ei voitu kopioida sijainnista %1 sijaintiin %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation type="unfinished"/>
</message>
@@ -3142,17 +3186,17 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Järjestelmäasetukset ovat saatavilla vain kun peli ei ole käynnissä</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Tämä korvaa tämänhetkisen virtuaalisen Switchin uudella. Tämänhetkistä virtuaalista Switchiä ei voida palauttaa. Tällä voi olla odottamattomia vaikutuksia peleissä. Tämä voi epäonnistua jos käytät vanhentunutta tallennustiedoston konfiguraatiota. Haluatko jatkaa?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Varoitus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>Konsoli ID: 0x%1</translation>
</message>
@@ -3267,54 +3311,54 @@ Drag points to change position, or double-click table cells to edit values.</sou
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[paina näppäintä]</translation>
</message>
@@ -3752,893 +3796,894 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonyymiä dataa kerätään&lt;/a&gt; yuzun parantamiseksi. &lt;br/&gt;&lt;br/&gt;Haluatko jakaa käyttödataa meidän kanssamme?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetria</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Ladataan Web-applettia...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>Tällä hetkellä ladattujen shadereiden määrä</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Tämänhetkinen emulointinopeus. Arvot yli tai alle 100% kertovat emuloinnin tapahtuvan nopeammin tai hitaammin kuin Switchillä:</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Kuinka monta kuvaruutua sekunnissa peli tällä hetkellä näyttää. Tämä vaihtelee pelistä ja pelikohtauksesta toiseen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Aika, joka kuluu yhden kuvaruudun emulointiin huomioimatta päivitysnopeuden rajoituksia tai v-synciä. Täysnopeuksista emulointia varten tämä saa olla enintään 16,67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>TELAKKA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Pysäytä</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Varoitus vanhentunut peliformaatti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Käytät purettua ROM kansioformaattia, joka on vanhentunut tallennusmuoto. Toisin kuin uudet formaatit kuten NCA, NAX, XCI tai NSP, käyttämäsi formaatti ei tue ikoneita eikä päivityksiä. &lt;br&gt;&lt;br&gt;Lukeaksesi lisää yuzun tuetuista Switch formaateista &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;katso wikimme&lt;/a&gt;.
Tätä viestiä ei näytetä uudelleen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Virhe ladatessa ROMia!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>ROM-formaattia ei tueta.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Videoydintä käynnistäessä tapahtui virhe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Tuntematon virhe. Tarkista lokitiedosto lisätietoja varten.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Tallennus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Modin data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Virhe avatessa kansiota %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Kansiota ei ole olemassa!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Virhe avattaessa siirrettävää Shader Cachea</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Sisällöt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Päivitys</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Poista merkintä</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Poistataanko asennettu peli %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Onnistuneesti poistettu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>Asennettu pohjapeli poistettiin onnistuneesti.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Virhe poistaessa %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Pohjapeliä ei ole asennettu NAND-muistiin eikä sitä voida poistaa.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Asennettu päivitys poistettiin onnistuneesti.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Tähän sovellukseen ei ole asennettu päivitystä.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Tähän sovellukseen ei ole asennettu DLC:tä.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Asennettu DLC poistettu onnistuneesti %1 </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Poistataanko pelin mukautettu määritys?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Poista tiedosto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Virhe poistettaessa siirrettävää Shader Cachea</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>Shader cachea tälle sovellukselle ei ole olemassa.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Siirrettävä Shadet Cache poistettiin onnistuneesti.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Siirrettävän Shader Cachen poisto epäonnistui.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Virhe poistaessa mukautettua määritystä.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Mukautettua määritystä tälle sovellukselle ei ole olemassa.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Pelin mukautettu määritys poistettiin onnistuneesti.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Pelin mukautetun määrityksen poistaminen epäonnistui.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS purkaminen epäonnistui</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>RomFS tiedostoja kopioidessa tapahtui virhe, tai käyttäjä perui operaation.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Täysi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Luuranko</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Valitse RomFS dumppausmoodi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Valitse kuinka haluat dumpata RomFS:n. &lt;br&gt;Täysi kopioi kaikki tiedostot uuteen kansioon kun taas &lt;br&gt;luuranko luo ainoastaan kansiorakenteen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Puretaan RomFS:ää</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Peruuta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFs purettiin onnistuneesti!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>Operaatio suoritettiin onnistuneesti.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Virhe avatessa %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Valitse kansio</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Ominaisuudet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Pelin asetuksia ei saatu ladattua.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch tiedosto (%1);;Kaikki tiedostot (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Lataa tiedosto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Avaa puretun ROMin kansio</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Virheellinen kansio valittu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Valitsemasi kansio ei sisällä &quot;main&quot;-tiedostoa.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Asennettava Switch tiedosto (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submissions Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Asenna tiedostoja</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Asennetaan tiedostoa &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Asennustulokset</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Järjestelmäohjelma</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Järjestelmätiedosto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Järjestelmäohjelman päivitys</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Firmware-paketti (A tyyppi)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Firmware-paketti (B tyyppi)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Peli</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Pelin päivitys</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Pelin DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Delta nimike</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Valitse NCA asennustyyppi...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Valitse asennettavan NCA-nimikkeen tyyppi:
(Useimmissa tapauksissa oletustyyppi &quot;Peli&quot; toimii oikein)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Asennus epäonnistui</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Valitsemasi nimiketyyppi on virheellinen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Tiedostoa ei löytynyt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Tiedostoa &quot;%1&quot; ei löytynyt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>yuzu-tili puuttuu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Lähettääksesi pelin toimivuusraportin sinun tulee yhdistää yuzu-tilisi. &lt;br&gt;&lt;br/&gt; Liittääksesi yuzu-tilin valitse Emulaatio &amp;gt; Asetukset &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Virhe avatessa URL-osoitetta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>URL-osoitetta &quot;%1&quot;. ei voitu avata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo tiedosto (%1);; Kaikki tiedostot (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Lataa Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Virhe avattaessa Amiibo datatiedostoa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Amiibo tiedoston &quot;%1&quot; avaaminen lukemista varten epäonnistui.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Virhe luettaessa Amiibo datatiedostoa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Amiibon lukeminen epäonnistui. Ohjelma odotti lukevansa %1 tavua mutta onnistui lukemaan vain %2 tavua.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Virhe luettaessa Amiibo-dataa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Amiibon dataa ei voitu lukea.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Tallenna kuvakaappaus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG-kuva (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Käynnistä</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Nopeus: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Nopeus: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Peli: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Ruutuaika: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Peli, jota yrität ladata vaatii, että dumppaat lisätiedostoja Switchistäsi ennen pelaamista. &lt;br/&gt;&lt;br/&gt;Lue ohjeet näiden tiedostojen dumppaamiseen tältä wiki-sivulta: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Haluatko palata pelivalikkoon? Jatkaminen voi johtaa pelin kaatumiseen, tallennustiedostojen korruptoitumiseen tai muihin bugeihin.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu ei löytänyt Switchin järjestelmätiedostoja: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu ei löytänyt Switchin järjestelmätiedostoja: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Järjestelmätiedostoja ei löytynyt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Järjestelmätiedosto puuttuu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu ei havainnut Switchin shared fontteja. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Jaettuja fontteja ei löytynyt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Shared Font puuttuu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Tuhoisa virhe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu kohtasi tuhoisan virheen, lue lokitiedosto lisätietoja varten. Löydät lokitiedoston tämän sivun avulla: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt; Halutko palata takaisin pelivalikkoon. Jatkaminen voi johtaa pelin kaatumiseen, tallennustiedostojen korruptoitumiseen tai muihin bugeihin.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Tapahtui tuhoisa virhe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Vahvista avaimen uudelleenlaskenta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4654,37 +4699,37 @@ ja tee itsellesi varmuuskopiot.
Tämä poistaa automaattisesti generoidut avaimet ja ajaa avainten laskentamoduulin uudelleen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Sulakkeet puuttuvat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- BOOT0 puuttuu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- BCPKG2-1-Normal-Main puuttuu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation>- PRODINFO puuttuu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Johdantokomponentit puuttuvat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4693,39 +4738,39 @@ Tähän voi kulua jonkin aikaa
riippuen laitteesi suorituskyvystä.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Lasketaan avaimia</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Valitse RomFS dumppauskohde</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Valitse minkä RomFS:n haluat dumpata.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Haluatko varmasti sulkea yuzun?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Haluatko varmasti lopettaa emuloinnin? Kaikki tallentamaton tiedo menetetään.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4737,38 +4782,38 @@ Haluatko silti ohittaa tämän ja sulkea?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>openGL ei ole saatavilla!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>Yuzua ei ole koottu OpenGL-yhteensopivuuden kanssa.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Virhe käynnistäessä OpenGL ydintä!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
@@ -4930,77 +4975,77 @@ Haluatko silti ohittaa tämän ja sulkea?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Täydellinen</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Peli toimii täydellisesti ilman ääni- tai grafiikkaongelmia.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Hyvä</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Pelin voi pelata alusta loppuun mutta siinä esiintyy pieniä graafisia tai ääniongelmia. Peli saattaa vaatia toimiakseen lisätoimenpiteitä.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Välttävä</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>Peli on pelattavissa alusta loppuun mutta siinä esiintyy merkittäviä ääni- ja grafiikkaongelmia. </translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Huono</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Peli toimii mutta siinä esiintyy merkittäviä ääni- ja grafiikkaongelmia. Peli ei ole pelattavissa alusta loppuun ongelmien vuoksi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/Valikko</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>Peliä ei voi pelata merkittävien ääni- ja grafiikkaongelmien vuoksi. Pelissä ei pääse aloitusvalikko pidemmälle.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Ei käynnisty</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>Peli kaatuu käynnistettäessä.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Ei testattu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Peliä ei ole vielä testattu</translation>
</message>
@@ -5034,22 +5079,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Vahvista, että nämä ovat tiedostot jotka haluat asentaa.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Päivityksen tai DLC:n asentaminen korvaa aiemmin asennetut.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Asenna</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Asenna tiedosto NAND-muistiin</translation>
</message>
@@ -5081,22 +5126,22 @@ Screen.</source>
<translation>Arvioitu aika 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Ladataan...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Ladataan Shaderit %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Käynnistetään...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Arvioitu aika %1</translation>
</message>
@@ -5372,284 +5417,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Asennetut SD-sovellukset</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Asennetut NAND-sovellukset</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Järjestelmäsovellukset</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Lisää uusi pelikansio</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[ei asetettu]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Hattu %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Akseli %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Näppäin %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[tuntematon]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Käynnistä</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[ei käytössä]</translation>
</message>
@@ -5690,7 +5735,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation type="unfinished"/>
</message>
@@ -5703,7 +5748,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation type="unfinished"/>
</message>
@@ -5716,7 +5761,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation type="unfinished"/>
</message>
@@ -5729,7 +5774,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation type="unfinished"/>
</message>
@@ -5757,7 +5802,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Käsikonsolimoodi</translation>
</message>
@@ -5878,32 +5923,32 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
@@ -5942,7 +5987,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5950,17 +5995,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Valitse käyttäjä:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Käyttäjät</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Profiilivalitsin</translation>
</message>
@@ -6009,7 +6054,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Call stack</translation>
</message>
@@ -6017,17 +6062,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>Odotetaan mutex 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>has waiters: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>owner handle: 0x%1</translation>
</message>
@@ -6035,12 +6080,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>Odotetaan kaikkia objekteja</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>Odotetaan yhtä seuraavista objekteista</translation>
</message>
@@ -6048,12 +6093,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>waited by no thread</translation>
</message>
@@ -6061,112 +6106,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>pysäytetty</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>lepää</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>odotetaan IPC-vastausta</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>Odotetaan objekteja</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>odotetaan condition variable</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>odotetaan addres arbiter</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation>PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ihanteellinen</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>ydin %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>prosessori = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>ihanteellinen ydin = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>affinity mask = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>thread id = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>prioriteetti = %1(tämänhetkinen) / %2(normaali)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>viimeisimmät suoritetut tikit = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>ei odota mutexia</translation>
</message>
@@ -6174,7 +6219,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>odotus by thread</translation>
</message>
@@ -6182,7 +6227,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/fr.ts b/dist/languages/fr.ts
index 43a8db614..825a74cf4 100644
--- a/dist/languages/fr.ts
+++ b/dist/languages/fr.ts
@@ -51,32 +51,32 @@ p, li { white-space: pre-wrap; }&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot;
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Communication avec le serveur...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Annuler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Touchez le coin supérieur gauche&lt;br&gt;de votre pavé tactile.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Touchez le coin supérieur gauche&lt;br&gt; de votre pavé tactile.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Configuration terminée !</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot;
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -357,7 +357,21 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
<translation>Désactiver les vérifications de l&apos;espace d&apos;adresse</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Cette option améliore la vitesse en s&apos;appuyant uniquement sur la sémantique de cmpxchg pour s&apos;assurer de la sécurité des instructions d&apos;accès exclusif. Veuillez noter que cela peut entraîner des blocages et autres situations de compétition.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation>Ignorer le moniteur global</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Les paramètres du CPU sont uniquement disponibles quand aucun jeu n&apos;est lancé.</translation>
</message>
@@ -517,11 +531,38 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>Activer l&apos;Émulation MMU de l&apos;Hôte</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Les réglages du CPU sont uniquement disponibles quand aucun jeu n&apos;est lancé.</translation>
</message>
@@ -679,7 +720,12 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
<translation>Activer tout les types de manettes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Ces options seront réinitialisées automatiquement lorsque yuzu fermera.</translation>
</message>
@@ -729,78 +775,78 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
<translation>Configuration de yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Son</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Débogage</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Système de fichiers</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Général</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Vidéo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>Graphismes avancés</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Raccourcis clavier</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Contrôles</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Profils</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Réseau</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Système</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Liste des jeux</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1035,12 +1081,12 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
<translation>Réinitialiser Tous les Paramètres</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Ceci réinitialise tout les paramètres et supprime toutes les configurations par jeu. Cela ne va pas supprimer les répertoires de jeu, les profils, ou les profils d&apos;entrée. Continuer ?</translation>
</message>
@@ -1269,7 +1315,7 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
<translation>Couleur de L’arrière plan :</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Shaders en Assembleur, NVIDIA Seulement)</translation>
</message>
@@ -1837,7 +1883,7 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Stick Gauche</translation>
</message>
@@ -1931,14 +1977,14 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1957,7 +2003,7 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
@@ -1970,15 +2016,15 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2035,230 +2081,230 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Stick Droit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Effacer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[non défini]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Bouton d&apos;activation</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>Inverser les boutons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Inverser l&apos;axe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>Définir le seuil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Choisissez une valeur entre 0% et 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation>Définir le seuil du gyroscope</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Mapper le stick analogique</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Après avoir appuyé sur OK, bougez d&apos;abord votre joystick horizontalement, puis verticalement.
Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis horizontalement.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Zone morte: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Modification de la course: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Deux Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Joycon de gauche</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Joycon de droit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Mode Portable</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Manette GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>Poké Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>Manette NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>Manette SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>Manette N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Start / Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Stick de contrôle </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Secouez !</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[en attente]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Nouveau Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Entrez un nom de profil :</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Créer un profil d&apos;entrée </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>Le nom de profil donné est invalide !</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Échec de la création du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Supprimer le profil d&apos;entrée</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Échec de la suppression du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Charger le profil d&apos;entrée</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Échec du chargement du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Sauvegarder le profil d&apos;entrée</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Échec de la sauvegarde du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
@@ -2306,7 +2352,7 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Configurer</translation>
</message>
@@ -2342,7 +2388,7 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Tester</translation>
</message>
@@ -2357,82 +2403,82 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
<translation>Retirer un serveur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Plus d&apos;informations&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Le numéro de port contient des caractères invalides</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>Le port doit être entre 0 et 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>L&apos;adresse IP n&apos;est pas valide</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Ce serveur UDP existe déjà</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Impossible d&apos;ajouter plus de 8 serveurs</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Essai</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Configuration</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Test réussi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Données reçues du serveur avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Test échoué</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Impossible de recevoir des données valides du serveur.&lt;br&gt;Veuillez vérifier que le serveur est correctement configuré et que l&apos;adresse et le port sont corrects.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>Le test UDP ou la configuration de l&apos;étalonnage est en cours.&lt;br&gt;Veuillez attendre qu&apos;ils se terminent.</translation>
</message>
@@ -2460,7 +2506,7 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
<translation>Interface Réseau</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Aucun</translation>
</message>
@@ -2513,47 +2559,47 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
<translation>Développeur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Extensions</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Général</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Système</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Graphiques</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Adv. Graphiques</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Propriétés</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Utiliser la configuration globale (%1)</translation>
</message>
@@ -2571,12 +2617,12 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
<translation>Extensions</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Nom de la patch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Version</translation>
</message>
@@ -2634,7 +2680,7 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
<translation>La gestion de profil est accessible uniquement lorsque aucun jeu n&apos;est en cours.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2642,92 +2688,92 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Entrez un nom d&apos;utilisateur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Utilisateurs</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Entrez un nom d&apos;utilisateur pour le nouvel utilisateur :</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Entrez un nouveau nom d&apos;utilisateur :</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Confirmez la suppression</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Vous êtes sur le point de supprimer l&apos;utilisateur avec le nom &quot;%1&quot;. Êtes vous sûr?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Sélectionner l&apos;image de l&apos;utilisateur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Images JPEG (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Erreur dans la suppression de l&apos;image</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Une erreur est survenue en essayant de changer l&apos;image précédente à : %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Erreur dans la suppression du fichier</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Impossible de supprimer le fichier existant : %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Erreur dans la création du répertoire d&apos;image de l&apos;utilisateur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Impossible de créer le répertoire %1 pour stocker les images de l&apos;utilisateur.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Erreur dans la copie de l&apos;image de l&apos;utilisateur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Impossible de copier l&apos;image de %1 à %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Erreur de redimensionnement de l&apos;image utilisateur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>Impossible de redimensionner l&apos;image</translation>
</message>
@@ -3171,17 +3217,17 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
<translation>Les paramètres systèmes ne sont accessibles que lorsque le jeu n&apos;est pas en cours.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Ceci remplacera la Switch virtuelle actuelle par une nouvelle. La Switch actuelle ne sera plus récupérable. cela peut entrainer des effets non désirés pendant le jeu. Ceci peut échouer si une configuration de sauvegarde périmée est utilisée. Continuer ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Avertissement</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>ID de la Console : 0x%1</translation>
</message>
@@ -3297,54 +3343,54 @@ Faites glisser les points pour modifier la position ou double-cliquez sur les ce
<translation>Supprimer le point</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Bouton</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Nouveau profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Saisissez le nom du nouveau profil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Supprimer le profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Supprimer le profil %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Renommer le profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Nouveau nom:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[appuyez sur une touche]</translation>
</message>
@@ -3782,893 +3828,894 @@ Faites glisser les points pour modifier la position ou double-cliquez sur les ce
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Des données anonymes sont collectées&lt;/a&gt; pour aider à améliorer yuzu. &lt;br/&gt;&lt;br/&gt;Voulez-vous partager vos données d&apos;utilisations avec nous ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Télémétrie</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Chargement du Web Applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Désactiver l&apos;applet web</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>Désactiver l&apos;applet web l&apos;empêchera de s&apos;afficher à nouveau pour le reste de la session émulée. Cela peut causer des comportements indéfinis et ne devrait être utilisé qu&apos;avec Super Mario 3D All-Stars. Voulez-vous vraiment désactiver l&apos;applet web?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>La quantité de shaders en cours de construction</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Le multiplicateur de mise à l&apos;échelle de résolution actuellement sélectionné.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Valeur actuelle de la vitesse de l&apos;émulation. Des valeurs plus hautes ou plus basses que 100% indique que l&apos;émulation fonctionne plus vite ou plus lentement qu&apos;une véritable Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Combien d&apos;image par seconde le jeu est en train d&apos;afficher. Ceci vas varier de jeu en jeu et de scènes en scènes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Temps pris pour émuler une image par seconde de la switch, sans compter le limiteur d&apos;image par seconde ou la synchronisation verticale. Pour une émulation à pleine vitesse, ceci devrait être au maximum à 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>MODE TV</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Effacer les fichiers récents</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Continuer</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation>yuzu exécute un jeu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Avertissement : Le Format de jeu est dépassé</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Vous utilisez un format de ROM déconstruite pour ce jeu, qui est donc un format dépassé qui à été remplacer par d&apos;autre. Par exemple les formats NCA, NAX, XCI, ou NSP. Les destinations de ROM déconstruites manque des icônes, des métadonnée et du support de mise à jour.&lt;br&gt;&lt;br&gt;Pour une explication des divers formats Switch que yuzu supporte, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;Regardez dans le wiki&lt;/a&gt;. Ce message ne sera pas montré une autre fois.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Erreur lors du chargement de la ROM !</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>Le format de la ROM n&apos;est pas supporté.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Une erreur s&apos;est produite lors de l&apos;initialisation du noyau dédié à la vidéo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu a rencontré une erreur en exécutant le cœur vidéo. Cela est généralement causé par des pilotes graphiques trop anciens. Veuillez consulter les logs pour plus d&apos;informations. Pour savoir comment accéder aux logs, veuillez vous référer à la page suivante : &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Comment partager un fichier de log &lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Erreur lors du chargement de la ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Veuillez suivre &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;le guide de démarrage rapide yuzu&lt;/a&gt; pour retransférer vos fichiers.&lt;br&gt;Vous pouvez vous référer au wiki yuzu&lt;/a&gt; ou le Discord yuzu&lt;/a&gt; pour de l&apos;assistance.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Une erreur inconnue est survenue. Veuillez consulter le journal des logs pour plus de détails.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Enregistrer les données</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Donnés du Mod</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Erreur dans l&apos;ouverture du dossier %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Le dossier n&apos;existe pas !</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Erreur lors de l&apos;ouverture des Shader Cache Transferable</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Impossible de créer le dossier de cache du shader pour ce jeu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Contenus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Mise à jour</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Supprimer l&apos;entrée</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Supprimer le jeu installé %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Supprimé avec succès</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>Suppression du jeu de base installé avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Erreur lors de la suppression %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Le jeu de base n&apos;est pas installé dans la NAND et ne peut pas être supprimé.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Suppression de la mise à jour installée avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Il n&apos;y a pas de mise à jour installée pour ce titre.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Il n&apos;y a pas de DLC installé pour ce titre.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Suppression de %1 DLC installé(s) avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Supprimer la Cache OpenGL de Shader Transférable?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Supprimer la Cache Vulkan de Shader Transférable?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Supprimer Toutes les Caches de Shader Transférable?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Supprimer la configuration personnalisée du jeu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Supprimer fichier</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Erreur lors de la suppression du cache de shader transférable</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>Un shader cache pour ce titre n&apos;existe pas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Suppression du cache de shader transférable avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Échec de la suppression du cache de shader transférable.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Erreur durant la Suppression des Caches de Shader Transférable</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Suppression des caches de shader transférable effectuée avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Impossible de supprimer le dossier de la cache de shader transférable.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Erreur lors de la suppression de la configuration personnalisée</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Il n&apos;existe pas de configuration personnalisée pour ce titre.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Suppression de la configuration de jeu personnalisée avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Échec de la suppression de la configuration personnalisée du jeu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>L&apos;extraction de la RomFS a échoué !</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Une erreur s&apos;est produite lors de la copie des fichiers RomFS ou l&apos;utilisateur a annulé l&apos;opération.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Plein</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Squelette</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Sélectionnez le mode d&apos;extraction de la RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Veuillez sélectionner la manière dont vous souhaitez que le fichier RomFS soit extrait.&lt;br&gt;Full copiera tous les fichiers dans le nouveau répertoire, tandis que&lt;br&gt;skeleton créera uniquement la structure de répertoires.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>Il n&apos;y a pas assez d&apos;espace libre dans %1 pour extraire la RomFS. Veuillez libérer de l&apos;espace ou sélectionner un autre dossier d&apos;extraction dans Émulation &gt; Configuration &gt; Système &gt; Système de fichier &gt; Extraire la racine</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Extraction de la RomFS ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Annuler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Extraction de la RomFS réussi !</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>L&apos;opération s&apos;est déroulée avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Erreur lors de l&apos;ouverture %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Sélectionner un répertoire</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Propriétés</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Les propriétés du jeu n&apos;ont pas pu être chargées.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Exécutable Switch (%1);;Tous les fichiers (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Charger un fichier</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Ouvrir le dossier des ROM extraites</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Destination sélectionnée invalide</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Le répertoire que vous avez sélectionné ne contient pas de fichier &quot;main&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Fichier Switch installable (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Installer les fichiers</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n fichier restant</numerusform><numerusform>%n fichiers restants</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Installation du fichier &quot;%1&quot; ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Résultats d&apos;installation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Pour éviter d&apos;éventuels conflits, nous déconseillons aux utilisateurs d&apos;installer des jeux de base sur la NAND.
Veuillez n&apos;utiliser cette fonctionnalité que pour installer des mises à jour et des DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n fichier a été nouvellement installé</numerusform><numerusform>%n fichiers ont été nouvellement installés</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n fichier a été écrasé</numerusform><numerusform>%n fichiers ont été écrasés</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n fichier n&apos;a pas pu être installé</numerusform><numerusform>%n fichiers n&apos;ont pas pu être installés</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Application Système</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Archive Système</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Mise à jour de l&apos;application système</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Paquet micrologiciel (Type A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Paquet micrologiciel (Type B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Jeu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Mise à jour de jeu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>DLC de jeu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Titre Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Sélectionner le type d&apos;installation du NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Veuillez sélectionner le type de titre auquel vous voulez installer ce NCA :
(Dans la plupart des cas, le titre par défaut : &apos;Jeu&apos; est correct.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Échec de l&apos;installation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Le type de titre que vous avez sélectionné pour le NCA n&apos;est pas valide.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Fichier non trouvé</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Fichier &quot;%1&quot; non trouvé</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Compte yuzu manquant</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Pour soumettre un test de compatibilité pour un jeu, vous devez lier votre compte yuzu.&lt;br&gt;&lt;br/&gt;Pour lier votre compte yuzu, aller à Emulation &amp;gt; Configuration&amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Erreur lors de l&apos;ouverture de l&apos;URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Impossible d&apos;ouvrir l&apos;URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>Enregistrement TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>Ecraser le fichier du joueur 1 ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Configuration invalide détectée</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Contrôleur portable ne peut pas être utilisé en mode téléviseur. La manette Pro sera sélectionnée.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation>Erreur</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Fichier Amiibo (%1);; Tous les fichiers (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Charger un Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Erreur lors de l&apos;ouverture du fichier de données Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Impossible d&apos;ouvrir le fichier Amiibo &quot;%1&quot; à lire.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Erreur lors de la lecture du fichier de données Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Impossible de lire entièrement les données Amiibo. On s&apos;attend à lire %1 octets, mais il n&apos;a pu lire que %2 octets</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Erreur lors du chargement des données Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Impossible de charger les données Amiibo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Capture d&apos;écran</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>Image PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>Etat du TAS : En cours d&apos;exécution %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>Etat du TAS : Enregistrement %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>Etat du TAS : Inactif %1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>Etat du TAS : Invalide</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>&amp;Stopper l&apos;exécution</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>Stopper l&apos;en&amp;registrement</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>En&amp;registrer</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Compilation: %n shader</numerusform><numerusform>Compilation: %n shaders</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Échelle : %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Vitesse : %1% / %2% </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Vitesse : %1% </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Jeu: %1 IPS (Débloqué)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Jeu : %1 FPS </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Frame : %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU HAUT</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EXTRÊME</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>GPU ERREUR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>PLUS PROCHE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>BILINÉAIRE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>BICUBIQUE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>GAUSSIEN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>AUCUN AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Le jeu que vous essayez de charger a besoin de fichiers additionnels que vous devez extraire depuis votre Switch avant de jouer.&lt;br/&gt;&lt;br/&gt;Pour plus d&apos;information sur l&apos;extraction de ces fichiers, veuillez consulter la page du wiki suivante : &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Extraction des archives système et des Shared Fonts depuis la Switch&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Voulez-vous quitter la liste des jeux ? Une émulation continue peut entraîner des crashs, la corruption de données de sauvegarde ou d’autres bugs.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu n&apos;a pas été capable de localiser un système d&apos;archive Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu n&apos;a pas été capable de localiser un système d&apos;archive Switch. %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Archive système introuvable</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Archive Système Manquante</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>Yuzu n&apos;a pas été capable de localiser les polices partagées de la Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Les polices partagées non pas été trouvées</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Polices Partagée Manquante</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Erreur fatale</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu a rencontré une erreur fatale, veuillez consulter les logs pour plus de détails. Pour plus d&apos;informations sur l&apos;accès aux logs, veuillez consulter la page suivante : &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt; Comment télécharger le fichier des logs &lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Voulez-vous quitter la liste des jeux ? Une émulation continue peut entraîner des crashs, la corruption de données de sauvegarde ou d’autres bugs.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Erreur Fatale rencontrée</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Confirmer la réinstallation de la clé</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4685,37 +4732,37 @@ et éventuellement faites des sauvegardes.
Cela supprimera vos fichiers de clé générés automatiquement et ré exécutera le module d&apos;installation de clé.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Fusibles manquants</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- BOOT0 manquant</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- BCPKG2-1-Normal-Main manquant</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation>- PRODINFO manquant</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Composants de dérivation manquants</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Les clés de chiffrement sont manquantes. &lt;br&gt;Veuillez suivre &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;le guide de démarrage rapide yuzu&lt;/a&gt; pour obtenir tous vos clés, firmware et jeux.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4724,39 +4771,39 @@ Cela peut prendre jusqu&apos;à une minute en fonction
des performances de votre système.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Installation des clés</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Sélectionner la cible d&apos;extraction du RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Veuillez sélectionner quel RomFS vous voulez extraire.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Êtes vous sûr de vouloir fermer yuzu ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Êtes-vous sûr d&apos;arrêter l&apos;émulation ? Tout progrès non enregistré sera perdu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4768,38 +4815,38 @@ Voulez-vous ignorer ceci and quitter quand même ?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL n&apos;est pas disponible!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu n&apos;a pas été compilé avec le support OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Erreur lors de l&apos;initialisation d&apos;OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Votre GPU peut ne pas prendre en charge OpenGL, ou vous n&apos;avez pas les derniers pilotes graphiques.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Erreur lors de l&apos;initialisation d&apos;OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Votre GPU peut ne pas prendre en charge OpenGL 4.6 ou vous ne disposez pas du dernier pilote graphique: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Votre GPU peut ne pas prendre en charge une ou plusieurs extensions OpenGL requises. Veuillez vous assurer que vous disposez du dernier pilote graphique.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensions non prises en charge:&lt;br&gt;%2</translation>
</message>
@@ -4961,80 +5008,80 @@ Voulez-vous ignorer ceci and quitter quand même ?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Parfait</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Le jeu fonctionne parfaitement, de manière fluide sans aucun bug audio ou graphique, toutes les fonctionnalités testées fonctionnent comme prévu sans
aucune modification nécessaire.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Bon</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Le jeu fonctionne correctement avec des bugs audio ou graphiques mineurs et est jouable du début à la fin. Nécessite peut être des
modifications</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Ok</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>Le jeu fonctionne avec des bugs audio ou graphiques majeurs, mais il est jouable du début à la fin avec des modifications.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Mauvais</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Le jeu fonctionne mais avec des bugs audio et graphiques majeurs. Impossible de progresser dans certaines zones à causes des bugs
même avec des modifications.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/Menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>Le jeu est complètement injouable à cause de bugs audio et graphiques. Impossible de progresser plus loin que l&apos;écran de démarrage.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Ne démarre pas</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>Le jeu crash au lancement.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Non testé</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Le jeu n&apos;a pas encore été testé.</translation>
</message>
@@ -5068,22 +5115,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Veuillez confirmer que ce sont les fichiers que vous souhaitez installer.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>L&apos;installation d&apos;une mise à jour ou d&apos;un DLC écrasera celle précédemment installée.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Installer</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Installer des fichiers sur la NAND</translation>
</message>
@@ -5116,22 +5163,22 @@ Screen.</source>
<translation>Temps Estimé 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Chargement...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Chargement des shaders %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Lancement...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Temps Estimé %1</translation>
</message>
@@ -5411,284 +5458,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Titres installés sur la SD</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Titres installés sur la NAND</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Titres Système</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Ajouter un nouveau répertoire de jeu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>Favoris</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Maj</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[non défini]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Chapeau %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Axe %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Bouton %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[inconnu]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Gauche</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Droite</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Bas</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Haut</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation>Cercle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation>Croix</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation>Carré</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation>Triangle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>Partager</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>Options</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Tactile</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Molette</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation>Reculer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation>Avancer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation>Tâche</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[non défini]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation>%1%2%3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[invalide]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation>%1%2Chapeau %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation>%1%2Axe %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Axe %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2Mouvement %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation>%1%2Bouton %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[inutilisé]</translation>
</message>
@@ -5729,7 +5776,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
@@ -5742,7 +5789,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Deux Joycons</translation>
</message>
@@ -5755,7 +5802,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Joycon gauche</translation>
</message>
@@ -5768,7 +5815,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Joycon droit</translation>
</message>
@@ -5796,7 +5843,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Portable</translation>
</message>
@@ -5917,32 +5964,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Manette GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>Poké Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation>Manette NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation>Manette SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation>Manette N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
@@ -5987,7 +6034,7 @@ Veuillez essayer à nouveau ou contactez le développeur du logiciel.</translati
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5995,17 +6042,17 @@ Veuillez essayer à nouveau ou contactez le développeur du logiciel.</translati
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Choisir un utilisateur :</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Utilisateurs</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Sélecteur de profil</translation>
</message>
@@ -6058,7 +6105,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Pile d&apos;exécution</translation>
</message>
@@ -6066,17 +6113,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>en attente du &quot;mutex&quot; 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>En attente : %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>propriétaire de la manche : 0x%1</translation>
</message>
@@ -6084,12 +6131,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>en attente de tous les objets</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>en attente d&apos;un des objets suivants</translation>
</message>
@@ -6097,12 +6144,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>attendu par aucun thread</translation>
</message>
@@ -6110,112 +6157,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>runnable</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>en pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>en veille</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>en attente de réponse IPC</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>En attente d&apos;objets</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>en attente de la variable conditionnelle</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>En attente de l&apos;adresse arbitre</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>waiting for suspend resume</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>en attente</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>initialisé</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>terminated</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>inconnu</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation>PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>idéal</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>cœur %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>Processeur = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>Cœur idéal = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>masque d&apos;affinité = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>id du fil = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>priorité = %1(courant) / %2(normal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>dernier tick en cours = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>en attente du &quot;mutex&quot;</translation>
</message>
@@ -6223,7 +6270,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>attendu par un fil</translation>
</message>
@@ -6231,7 +6278,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>&amp;Wait Tree</translation>
</message>
diff --git a/dist/languages/id.ts b/dist/languages/id.ts
index bfec8f509..ae5904ea9 100644
--- a/dist/languages/id.ts
+++ b/dist/languages/id.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Berkomunikasi dengan server...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Batalkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Sentuh pojok kiri atas &lt;br&gt;dari touchpad anda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Sekarang sentuh pojok kanan bawah &lt;br&gt;dari touchpad anda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Konfigurasi selesai!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -355,7 +355,19 @@ p, li { white-space: pre-wrap; }
<translation>Matikan pengecekan adress space</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Pengaturan CPU hanya tersedia saat permainan tidak dijalankan.</translation>
</message>
@@ -492,11 +504,38 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Pengaturan CPU hanya tersedia saat permainan tidak dijalankan.</translation>
</message>
@@ -654,7 +693,12 @@ p, li { white-space: pre-wrap; }
<translation>Nyalakan semua Jenis Kontroler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Ini akan diatur ulang secara otomatis ketika yuzu ditutup.</translation>
</message>
@@ -704,78 +748,78 @@ p, li { white-space: pre-wrap; }
<translation>Komfigurasi yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Awakutu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Sistem berkas</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Umum</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Grafis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>GrafisLanjutan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Pintasan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Kendali</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Jaringan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Daftar Permainan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Jejaring</translation>
</message>
@@ -1010,12 +1054,12 @@ p, li { white-space: pre-wrap; }
<translation>Atur Ulang Semua Pengaturan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation type="unfinished"/>
</message>
@@ -1244,7 +1288,7 @@ p, li { white-space: pre-wrap; }
<translation>Warna Latar:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Shader perakit, hanya NVIDIA)</translation>
</message>
@@ -1812,7 +1856,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Stik Kiri</translation>
</message>
@@ -1906,14 +1950,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1932,7 +1976,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Tambah</translation>
</message>
@@ -1945,15 +1989,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2010,230 +2054,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Stik Kanan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Bersihkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[belum diatur]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Atur tombol</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>Balikkan tombol</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Balikkan poros</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>Atur batasan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Pilih sebuah angka diantara 0% dan 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Petakan Stik Analog</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Setelah menekan OK, pertama gerakkan joystik secara mendatar, lalu tegak lurus.
Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu mendatar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Titik Mati: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Rentang Pengubah: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Kontroler Pro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Joycon Dual</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Joycon Kiri</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Joycon Kanan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Jinjing</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Kontroler GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>Kontroler NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>Kontroler SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>Kontroler N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Mulai / Jeda</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Stik Kendali</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Getarkan!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[menunggu]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Profil Baru</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Masukkan nama profil:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Ciptakan Profil Masukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>Nama profil yang diberi tidak sah!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Gagal membuat profil masukan &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Hapus Profil Masukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Gagal menghapus profil masukan &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Muat Profil Masukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Gagal memuat profil masukan &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Simpat Profil Masukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Gagal menyimpan profil masukan &quot;%1&quot;</translation>
</message>
@@ -2281,7 +2325,7 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Konfigurasi</translation>
</message>
@@ -2317,7 +2361,7 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Uji coba</translation>
</message>
@@ -2332,82 +2376,82 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
<translation>Hapus Server</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Pelajari lebih lanjut&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Terdapat karakter tidak sah di angka port</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>Port harus berada dalam jangkauan 0 dan 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>Alamat IP tidak sah</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Server UDP ini sudah ada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Tidak dapat menambah lebih dari 8 server</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Menguji</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Mengkonfigur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Tes Berhasil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Berhasil menerima data dari server.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Uji coba Gagal</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Tidak dapat menerima data yang sah dari server.&lt;br&gt;Mohon periksa bahwa server telah diatur dengan benar dan alamat dan port sudah sesuai.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>Uji coba UDP atau kalibrasi konfigurasi sedang berjalan.&lt;br&gt;Mohon tunggu hingga selesai.</translation>
</message>
@@ -2435,7 +2479,7 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
<translation>Antarmuka Jaringan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Tak ada</translation>
</message>
@@ -2488,47 +2532,47 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
<translation>Pengembang</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Pengaya (Add-On)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Umum</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Grafis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Ljtan. Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Properti</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Gunakan konfigurasi global (%1)</translation>
</message>
@@ -2546,12 +2590,12 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
<translation>Pengaya (Add-On)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Nama Tambalan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Versi</translation>
</message>
@@ -2609,7 +2653,7 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
<translation>Pengelolaan profil hanya tersedia saat permainan tidak dijalankan.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2617,92 +2661,92 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Masukkan Nama Pengguna</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Pengguna</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Masukkan nama pengguna untuk pengguna baru:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Masukkan nama pengguna baru:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Konfirmasi Penghapusan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Anda akan menghapus pengguna dengan nama &quot;%1&quot;. Apakah Anda yakin?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Pilih Gambar Pengguna</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Gambar JPEG (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Kesalahan ketika menghapus gambar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Kesalahan saat mencoba menimpa gambar sebelumnya di: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Kesalahan saat menghapus berkas</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Tak dapat menghapus berkas yang ada: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Kesalahan saat menciptakan direktori pengguna</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Tidak bisa menciptakan direktori %1 untuk menyimpan gambar pengguna.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Kesalahan ketika menyalin gambar pengguna</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Gagal menyalin berkas dari %1 ke %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Kesalahan ketika mengubah ukuran gambar pengguna</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>Tidak dapat mengubah ukuran gambar</translation>
</message>
@@ -3146,17 +3190,17 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
<translation>Pengaturan sistem hanya tersedia saat permainan tidak dijalankan.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Ini akan mengganti Switch virtual Anda dengan yang baru. Switch virtual Anda saat ini tidak akan bisa dipulihkan. Ini mungkin akan menyebabkan kesan tak terkira di dalam permainan. Ini juga mungkin akan gagal jika Anda menggunakan simpanan konfigurasi yang lawas. Lanjutkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Peringatan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>ID Konsol: 0x%1</translation>
</message>
@@ -3271,54 +3315,54 @@ Drag points to change position, or double-click table cells to edit values.</sou
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Tombol</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Profil Baru</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Masukkan nama untuk profil baru.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Hapus Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Hapus profil %%1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Ubah Nama Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Nama baru:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[tekan tombol]</translation>
</message>
@@ -3756,895 +3800,896 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Data anonim dikumpulkan&lt;/a&gt; untuk membantu yuzu. &lt;br/&gt;&lt;br/&gt;Apa Anda ingin membagi data penggunaan dengan kami?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetri</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Memuat Applet Web...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Matikan Applet Web</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>Mematikan applet web akan menyembunyikan hingga akhir sesi emulasi. Ini akan menyebabkan perilaku yang tidak diinginkan dan seharusnya hanya digunakan di Super Mario 3D All-Stars. Apakah anda yakin ingin mematikan applet web?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>Jumlah shader yang sedang dibuat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Pengali skala resolusi yang terpilih.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Kecepatan emulasi saat ini. Nilai yang lebih tinggi atau rendah dari 100% menandakan pengemulasian berjalan lebih cepat atau lambat dibanding Switch aslinya.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Berapa banyak frame per second (bingkai per detik) permainan akan ditampilkan. Ini akan berubah dari berbagai permainan dan pemandangan.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Waktu yang diperlukan untuk mengemulasikan bingkai Switch, tak menghitung pembatas bingkai atau v-sync. Agar emulasi berkecepatan penuh, ini harus 16.67 mdtk.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>DOCK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Bersihkan Berkas Baru-baru Ini</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Lanjutkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Jeda</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation>yuzu sedang menjalankan game</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Peringatan Format Permainan yang Usang</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Anda menggunakan format direktori ROM yang sudah didekonstruksi untuk permainan ini, yang mana itu merupakan format lawas yang sudah tergantikan oleh yang lain seperti NCA, NAX, XCI, atau NSP. Direktori ROM yang sudah didekonstruksi kekurangan ikon, metadata, dan dukungan pembaruan.&lt;br&gt;&lt;br&gt;Untuk penjelasan berbagai format Switch yang didukung yuzu, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;periksa wiki kami&lt;/a&gt;. Pesan ini tidak akan ditampilkan lagi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Kesalahan ketika memuat ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>Format ROM tak didukung.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Terjadi kesalahan ketika menginisialisasi inti video.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu telah mengalami error saat menjalankan inti video. Ini biasanya disebabkan oleh pemicu piranti (driver) GPU yang usang, termasuk yang terintegrasi. Mohon lihat catatan untuk informasi lebih rinci. Untuk informasi cara mengakses catatan, mohon lihat halaman berikut: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Cara Mengupload Berkas Catatan&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Terjadi kesalahan yang tak diketahui. Mohon lihat catatan untuk informasi lebih rinci.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Simpan Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Mod Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Gagal Membuka Folder %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Folder tak ada!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Gagal Ketika Membuka Tembolok Shader yang Dapat Ditransfer</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Konten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Perbaharui</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Hapus Masukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Tidak ada DLC yang terinstall untuk judul ini.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Hapus File</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Kesalahan Menghapus Transferable Shader Cache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>Cache shader bagi judul ini tidak ada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Kesalahan Menghapus Konfigurasi Buatan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>Pengekstrakan RomFS Gagal!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Terjadi kesalahan ketika menyalin berkas RomFS atau dibatalkan oleh pengguna.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Penuh</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Skeleton</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Pilih Mode Dump RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Mohon pilih cara RomFS akan di-dump.&lt;br&gt;FPenuh akan menyalin seluruh berkas ke dalam direktori baru sementara &lt;br&gt;jerangkong hanya akan menciptakan struktur direktorinya saja.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Mengekstrak RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Batal</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Pengekstrakan RomFS Berhasil!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>Operasi selesai dengan sukses,</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Gagal membuka %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Pilih Direktori</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Properti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Properti permainan tak dapat dimuat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Eksekutabel Switch (%1);;Semua Berkas (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Muat Berkas</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Buka Direktori ROM Terekstrak</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Direktori Terpilih Tidak Sah</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Direktori yang Anda pilih tak memiliki berkas &apos;utama.&apos;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Install File</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Memasang berkas &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Hasil Install</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n file(s) baru diinstall
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n file(s) telah ditimpa
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n file(s) gagal di install
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Aplikasi Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Arsip Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Pembaruan Aplikasi Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Paket Perangkat Tegar (Tipe A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Paket Perangkat Tegar (Tipe B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Permainan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Pembaruan Permainan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>DLC Permainan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Judul Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Pilih Tipe Pemasangan NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Mohon pilih jenis judul yang Anda ingin pasang sebagai NCA ini:
(Dalam kebanyakan kasus, pilihan bawaan &apos;Permainan&apos; tidak apa-apa`.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Gagal Memasang</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Jenis judul yang Anda pilih untuk NCA tidak sah.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Berkas tak ditemukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Berkas &quot;%1&quot; tak ditemukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Akun yuzu Hilang</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Agar dapat mengirimkan berkas uju kompatibilitas permainan, Anda harus menautkan akun yuzu Anda.&lt;br&gt;&lt;br/&gt;TUntuk mennautkan akun yuzu Anda, pergi ke Emulasi &amp;gt; Konfigurasi &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Kesalahan saat membuka URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Tidak dapat membuka URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>Rekaman TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>Timpa file pemain 1? </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Konfigurasi tidak sah terdeteksi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Kontroller jinjing tidak bisa digunakan dalam mode dock. Kontroller Pro akan dipilih</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Berkas Amiibo (%1);; Semua Berkas (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Muat Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Gagal membuka berkas data Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Tak dapat membuka berkas Amiibo &quot;%1&quot; untuk dibaca.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Gagal membaca berkas data Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Tak dapat membaca data Amiibo sepenuhnya. Diperkirakan membaca %1 bita, namun hanya terbaca %2 bita.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Gagal memuat data Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Tak dapat memuat data Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Tangkapan Layar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>Berkas PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>Status TAS: Berjalan %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>Status TAS: Merekam %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>Status TAS: Diam %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>Status TAS: Tidak Valid</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>&amp;Matikan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Mulai</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>Berhenti Mer&amp;ekam</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>R&amp;ekam</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Membangun: %n shader(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Skala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Kecepatan: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Kecepatan: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Permainan: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Frame: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU TINGGI</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EKSTRIM</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>KESALAHAN GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>NEAREST</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>BILINEAR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>BICUBIC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>GAUSSIAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>TANPA AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Kesalahan Fatal</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4655,76 +4700,76 @@ This will delete your autogenerated key files and re-run the key derivation modu
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- Kehilangan BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- Kehilangan BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation>- Kehilangan PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Apakah anda yakin ingin menutup yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4734,38 +4779,38 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL tidak tersedia!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Terjadi kesalahan menginisialisasi OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>VGA anda mungkin tidak mendukung OpenGL, atau anda tidak memiliki pemacu piranti (driver) grafis terbaharu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Terjadi kesalahan menginisialisasi OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>VGA anda mungkin tidak mendukung OpenGL 4.6, atau anda tidak memiliki pemacu piranti (driver) grafis terbaharu.&lt;br&gt;&lt;br&gt;Pemuat GL:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>VGA anda mungkin tidak mendukung satu atau lebih ekstensi OpenGL. Mohon pastikan bahwa anda memiliki pemacu piranti (driver) grafis terbaharu.&lt;br&gt;&lt;br&gt;Pemuat GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Ekstensi yang tidak didukung:&lt;br&gt;%2</translation>
</message>
@@ -4785,7 +4830,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="340"/>
<source>Add-ons</source>
- <translation type="unfinished"/>
+ <translation>Pengaya (Add-On)</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="342"/>
@@ -4927,77 +4972,77 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Sempurna</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Bagus</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Buruk</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Awal/Menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Tidak Akan Berjalan</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation type="unfinished"/>
</message>
@@ -5031,22 +5076,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Install</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Install File ke NAND</translation>
</message>
@@ -5078,22 +5123,22 @@ Screen.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Memuat...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Memulai...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation type="unfinished"/>
</message>
@@ -5369,284 +5414,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[belum diatur]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Kiri</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Kanan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Bawah</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Atas</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Mulai</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Sentuh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2Gerakan %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation type="unfinished"/>
</message>
@@ -5687,7 +5732,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Kontroler Pro</translation>
</message>
@@ -5700,7 +5745,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Joycon Dual</translation>
</message>
@@ -5713,7 +5758,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Joycon Kiri</translation>
</message>
@@ -5726,7 +5771,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Joycon Kanan</translation>
</message>
@@ -5754,7 +5799,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Jinjing</translation>
</message>
@@ -5875,32 +5920,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Kontroler GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation>Kontroler NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation>Kontroler SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation>Kontroler N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
@@ -5939,7 +5984,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5947,17 +5992,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Pengguna</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation type="unfinished"/>
</message>
@@ -6006,7 +6051,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation type="unfinished"/>
</message>
@@ -6014,17 +6059,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation type="unfinished"/>
</message>
@@ -6032,12 +6077,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation type="unfinished"/>
</message>
@@ -6045,12 +6090,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation type="unfinished"/>
</message>
@@ -6058,112 +6103,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation type="unfinished"/>
</message>
@@ -6171,7 +6216,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation type="unfinished"/>
</message>
@@ -6179,7 +6224,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/it.ts b/dist/languages/it.ts
index 5476c8567..d7a841f75 100644
--- a/dist/languages/it.ts
+++ b/dist/languages/it.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Comunicazione con il server...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Annulla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Tocca l&apos;angolo in alto a sinistra &lt;br&gt;del touchpad.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Adesso tocca l&apos;angolo in basso a destra &lt;br&gt;del touchpad.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Configurazione completata!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -357,7 +357,19 @@ p, li { white-space: pre-wrap; }
<translation>Disattiva i controlli dello spazio degli indirizzi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Le impostazioni della CPU sono disponibili solamente quando nessun gioco è in esecuzione.</translation>
</message>
@@ -515,11 +527,38 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>Abilitare l&apos;emulazione MMU dell&apos;host</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Le impostazioni della CPU sono disponibili solo quando il gioco non è in esecuzione.</translation>
</message>
@@ -677,7 +716,12 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation type="unfinished"/>
</message>
@@ -727,78 +771,78 @@ p, li { white-space: pre-wrap; }
<translation>Configurazione di yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Debug</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Filesystem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Generale</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Grafica</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>Grafica avanzata</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Hotkey</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Comandi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Profili</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Lista Giochi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1033,12 +1077,12 @@ p, li { white-space: pre-wrap; }
<translation>Resetta tutte le impostazioni</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Questo resetta tutte le impostazioni e rimuove tutte le configurazioni per gioco. Questo, non cancellerà le cartelle di gioco, i profili o i profili di input. Vuoi Procedere ?</translation>
</message>
@@ -1267,7 +1311,7 @@ p, li { white-space: pre-wrap; }
<translation>Colore Sfondo:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation type="unfinished"/>
</message>
@@ -1835,7 +1879,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Stick Sinistro</translation>
</message>
@@ -1929,14 +1973,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1955,7 +1999,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Più</translation>
</message>
@@ -1968,15 +2012,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2033,230 +2077,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Stick Destro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Cancella</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[non impostato]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Premi il bottone</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Inverti assi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Mappa la levetta analogica</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Dopo aver premuto OK, prima muovi la levetta orizzontalmente, e poi verticalmente.
Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalmente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Zona morta: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Modifica raggio: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Due Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Joycon sinistro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Joycon destro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Portatile</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Controller GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Inizia / Interrompi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Levetta di Controllo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>Levetta C</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Scuoti!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[in attesa]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Nuovo Profilo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Inserisci un nome profilo:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Crea un profilo di Input</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>Il nome profilo dato non è valido!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Impossibile creare il profilo di input &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Elimina un profilo di Input</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Impossibile eliminare il profilo di input &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Carica un profilo di Input</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Impossibile caricare il profilo di input &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Salva un profilo di Input</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Impossibile creare il profilo di input &quot;%1&quot;</translation>
</message>
@@ -2304,7 +2348,7 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Configura</translation>
</message>
@@ -2340,7 +2384,7 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Test</translation>
</message>
@@ -2355,82 +2399,82 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
<translation>Rimuovi un Server</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Per saperne di più&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Il numero di porta ha caratteri non validi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>La valore della porta deve essere compreso tra 0 e 65353 inclusi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>Indirizzo IP non valido</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Questo server UDP esiste già</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Impossibile aggiungere più di 8 server</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Testando</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Configurando</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Test riuscito</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Ricevuti con successo dati dal server.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Test fallito</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Impossibile ricevere dati validi dal server.&lt;br&gt; Verificare che il server sia impostato correttamente e che indirizzo e porta siano corretti.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>È in corso il test UDP o la configurazione della calibrazione,&lt;br&gt; attendere che finiscano.</translation>
</message>
@@ -2458,7 +2502,7 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Niente</translation>
</message>
@@ -2511,47 +2555,47 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
<translation>Sviluppatore</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Generale</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Grafica</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Grafiche Avanzate</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Proprietà</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Usa configurazione globale (%1)</translation>
</message>
@@ -2569,12 +2613,12 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
<translation>Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Nome della patch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Versione</translation>
</message>
@@ -2632,7 +2676,7 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
<translation>La gestione dei profili è disponibile solamente quando nessun gioco è in esecuzione.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2640,92 +2684,92 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Inserisci Nome Utente</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Utenti</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Inserisci un nome utente per il nuovo utente:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Inserisci un nuovo nome utente:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Conferma Eliminazione</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Stai per cancellare l&apos;utente chiamato &quot;%1&quot;. Sei sicuro?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Seleziona Immagine Utente</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Immagini JPEG (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Impossibile eliminare l&apos;immagine</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Impossibile sovrascrivere l&apos;immagine precedente in: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Impossibile eliminare il file</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Impossibile eliminare il file già esistente: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Errore durante la creazione della cartella delle immagini dell&apos;utente</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Impossibile creare la cartella %1 per archiviare le immagini dell&apos;utente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Impossibile copiare l&apos;immagine utente</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Impossibile copiare l&apos;immagine da %1 a %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Errore durante il ridimensionamento dell&apos;immagine utente</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>Impossibile ridimensionare l&apos;immagine</translation>
</message>
@@ -3169,17 +3213,17 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
<translation>Le impostazioni di sistema sono disponibili solamente quando nessun gioco è in esecuzione.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Questo rimpiazzerà la tua Switch virtuale con una nuova. La tua Switch virtuale non sarà recuperabile. Questo potrebbe avere effetti indesiderati nei giochi. Questo potrebbe fallire, se usi un salvataggio non aggiornato. Desideri continuare?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Attenzione</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>ID Console: 0x%1</translation>
</message>
@@ -3295,54 +3339,54 @@ Trascina i punti per cambiare posizione, oppure clicca due volte la cella in tab
<translation>Elimina Punto</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Pulsante</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Nuovo Profilo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Inserisci il nome per il nuovo profilo:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Elimina Profilo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Elimina profilo %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Rinomina Profilo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Nuovo nome:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[premi pulsante]</translation>
</message>
@@ -3780,895 +3824,896 @@ Trascina i punti per cambiare posizione, oppure clicca due volte la cella in tab
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Vengono raccolti dati anonimi&lt;/a&gt; per aiutarci a migliorare yuzu. &lt;br/&gt;&lt;br/&gt;Desideri condividere i tuoi dati di utilizzo con noi?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetria</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Caricamento Web Applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Disabilita l&apos;Applet Web</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>La disabilitazione dell&apos;applet Web farà sì che non venga più mostrata per il resto della sessione emulata. Questo può portare a un comportamento indefinito e dovrebbe essere usato solo con Super Mario 3D All-Stars. Sei sicuro di voler disabilitare l&apos;applet web?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>Il numero di shaders al momento in costruzione</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Velocità corrente dell&apos;emulazione. Valori più alti o più bassi di 100% indicano che l&apos;emulazione sta funzionando più velocemente o lentamente rispetto a una Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Quanti frame al secondo il gioco mostra attualmente. Questo varia da gioco a gioco e da situazione a situazione.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tempo utilizzato per emulare un frame della Switch, non contando i limiti ai frame o il v-sync.
Per un&apos;emulazione alla massima velocità, il valore dev&apos;essere al massimo 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>DOCK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Cancella i File Recenti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Continua</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Pausa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Avviso Formato di Gioco Obsoleto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Stai usando una cartella con dentro una ROM decostruita come formato per avviare questo gioco, è un formato obsoleto ed è stato sostituito da altri come NCA, NAX, XCI o NSP. Le ROM decostruite non hanno icone, metadata e non supportano gli aggiornamenti. &lt;br&gt;&lt;br&gt;Per una spiegazione sui vari formati di Switch che yuzu supporta, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;controlla la nostra wiki&lt;/a&gt;. Questo messaggio non verrà più mostrato.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Errore nel caricamento della ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>Il formato della ROM non è supportato.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>E&apos; stato riscontrato un errore nell&apos;inizializzazione del core video.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Errore nel caricamento della ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Per favore segui &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guida rapida di yuzu&lt;/a&gt; per rifare il dump dei file.&lt;br&gt;Puoi fare riferimento alla wiki di yuzu&lt;/a&gt; o al canale Discord di yuzu&lt;/a&gt; per aiuto.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>E&apos; stato riscontrato un errore sconosciuto. Visualizza il log per maggiori dettagli.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Dati di Salvataggio</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Dati delle Mod</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Errore nell&apos;Apertura della Cartella %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>La cartella non esiste!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Errore nell&apos;Apertura della Cache Shader Trasferibile</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Contenuti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Aggiorna</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Rimuovi voce</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Rimuovere i giochi installati %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Rimosso con successo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>Rimosso con successo il gioco base installato</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Errore durante la rimozione %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Il gioco base non è installato su NAND e non può essere rimosso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Aggiornamento rimosso on successo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Non c&apos;è alcun aggiornamento installato per questo gioco.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Non c&apos;è alcun DLC installato per questo gioco.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Rimossi con successo %1 DLC installati.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Rimuovere la configurazione personalizzata del gioco?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Rimuovi file?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Errore rimuovendo la shader cache trasferibile.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>Una cache di shader per questo titolo non esiste.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Rimossa con successo la shader cache trasferibile.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Impossibile rimuovere la cache dello shader trasferibile.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Errore rimuovendo la configurazione personalizzata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Una configurazione personalizzata per questo gioco non esiste.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Rimossa con successo la configurazione personalizzata del gioco.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Impossibile rimuovere la configurazione personalizzata del gioco</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>Estrazione RomFS Fallita!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>C&apos;è stato un errore nella copia dei file del RomFS o l&apos;operazione è stata annullata dall&apos;utente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Completa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Scheletro.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Seleziona Modalità Estrazione RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Seleziona come vorresti estrarre il RomFS. &lt;br&gt;Completo copierà tutti i file in una nuova cartella mentre&lt;br&gt;scheletro creerà solamente le cartelle e le sottocartelle.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Estrazione RomFS in corso...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Annulla</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Estrazione RomFS Riuscita!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>L&apos;operazione è stata completata con successo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Errore nell&apos;Apertura di %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Seleziona Cartella</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Proprietà</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Le proprietà del gioco non sono potute essere caricate.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Eseguibile Switch (%1);;Tutti i File (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Carica File</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Apri Cartella ROM Estratta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Cartella Selezionata Non Valida</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>La cartella che hai selezionato non contiene un file &quot;main&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>File installabili Switch (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Installa files</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Installazione del file &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Installa risultati</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Per evitare possibli conflitti, scoraggiamo gli utenti dall&apos;installare giochi base su NAND.
Per favore, usare questa funzione solo per installare aggiornamenti e DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Applicazione di Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Archivio di Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Aggiornamento Applicazione di Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Pacchetto Firmware (Tipo A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Pacchetto Firmware (Tipo B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Gioco</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Aggiornamento di Gioco</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>DLC Gioco</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Titolo Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Seleziona il Tipo di Installazione NCA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Seleziona il tipo del file NCA da installare:
(Nella maggior parte dei casi, il predefinito &apos;Gioco&apos; va bene.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Installazione Fallita</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Il tipo che hai selezionato per l&apos;NCA non è valido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>File non trovato</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>File &quot;%1&quot; non trovato</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Account di yuzu non trovato</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Per segnalare la compatibilità di un gioco, devi collegare il tuo account yuzu. &lt;br&gt;&lt;br/&gt;Per collegare il tuo account yuzu, vai su Emulazione &amp;gt;
Configurazione &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Errore aprendo l&apos;URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Impossibile aprire l&apos;URL &quot;% 1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>Vuoi sovrascrivere lo script del giocatore 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Trovata configurazione invalida</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Il controller Handheld non può essere utilizzato in modalità docked. Verrà selezionato il controller Pro.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>File Amiibo (%1);; Tutti I File (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Carica Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Errore nell&apos;apertura del file dati Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Impossibile aprire e leggere il file Amiibo &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Errore nella lettura dei dati del file Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Impossibile leggere tutti i dati dell&apos;Amiibo. E&apos; stato possibile leggere solamente %2 byte di %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Errore nel caricamento dei dati dell&apos;Amiibo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Impossibile caricare i dati dell&apos;Amiibo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Cattura Screenshot</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>Immagine PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Avvia</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Velocità: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Velocità: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Gioco: %1 FPS (Sbloccati)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Gioco: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Frame: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMALE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU ESTREMA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>ERRORE GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Il gioco che stai provando a caricare richiede ulteriori file che devono essere estratti dalla tua Switch prima di poter giocare. &lt;br/&gt;&lt;br/&gt;Per maggiori informazioni sull&apos;estrazione di questi file, visualizza la seguente pagina della wiki: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Estrazione di Archivi di Sistema e Font Condivisi da una Console Switch&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Vuoi uscire e tornare alla lista dei giochi? Continuare l&apos;emulazione potrebbe risultare in crash, salvataggi corrotti o altri bug.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu non ha potuto individuare un archivio di sistema della Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu non ha potuto individuare un archivio di sistema della Switch: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Archivio di Sistema Non Trovato</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Archivio di Sistema Mancante</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu non ha potuto individuare i font condivisi della Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Font Condivisi Non Trovati</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Font Condivisi Mancanti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Errore Fatale</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu ha riscontrato un errore fatale, visualizza il log per maggiori dettagli. Per maggiori informazioni su come accedere al log, visualizza la seguente pagina: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Come Caricare Il File Log&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Vuoi uscire e tornare alla lista dei giochi? Continuare l&apos;emulazione potrebbe risultare in crash, salvataggi corrotti o altri bug.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Errore Fatale riscontrato</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Conferma Riderivazione Chiave</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4685,37 +4730,37 @@ e facoltativamente fai dei backup.
Questo eliminerà i tuoi file di chiavi autogenerati e ri-avvierà il processo di derivazione delle chiavi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Fusi mancanti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation> - Manca BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - Manca BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation>- Manca PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Componenti di derivazione mancanti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4724,39 +4769,39 @@ Questa operazione potrebbe durare fino a un minuto in
base alle prestazioni del tuo sistema.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Derivazione Chiavi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Seleziona Target dell&apos;Estrazione del RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Seleziona quale RomFS vorresti estrarre.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Sei sicuro di voler chiudere yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Sei sicuro di voler fermare l&apos;emulazione? Tutti i progressi non salvati verranno perduti.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4768,38 +4813,38 @@ Desideri uscire comunque?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL non disponibile!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu non è stato compilato con il supporto OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Errore durante l&apos;inizializzazione di OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>La tua GPU potrebbe non supportare OpenGL, o non hai installato l&apos;ultima versione dei driver video.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Errore durante l&apos;inizializzazione di OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>La tua GPU potrebbe non supportare una o più estensioni OpenGL richieste. Assicurati di avere gli ultimi driver grafici.&lt;br&gt;&lt;br&gt;Estensioni non supportate:&lt;br&gt;</translation>
</message>
@@ -4961,79 +5006,79 @@ Desideri uscire comunque?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfetto</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Il gioco funziona perfettamente senza alcuni glitch audio o video, tutte le funzionalità testate funzionano come dovrebbero senza alcun metodo alternativo necessario.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Buono</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Il gioco presenta qualche errore grafico minore o glitch nell&apos;audio ed è giocabile dall&apos;inizio alla fine. Potrebbe richiedere dei metodi alternativi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Ok</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>l gioco presenta alcuni errori gravi audio o video. E&apos; impossibile proseguire in alcune aree a causa della presenza di glitch persino utilizzando metodi alternativi. </translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Scadente</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Il gioco funziona, ma presenta alcuni errori gravi audio o video. È impossibile proseguire in alcune aree a causa della presenza di glitch
persino utilizzando metodi alternativi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/Menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>Il gioco è completamente ingiocabile a causa di errori gravi audio o video. È impossibile proseguire oltre la Schermata
Iniziale.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Non si Avvia</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>Il gioco si blocca quando viene avviato.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Non Testato</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Il gioco non è ancora stato testato.</translation>
</message>
@@ -5067,22 +5112,22 @@ Iniziale.</translation>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Conferma che questi sono i file che vuoi installare.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Installare un Aggiornamento o un DLC sostituirà quello precedente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Installa</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Installa i file su NAND</translation>
</message>
@@ -5114,22 +5159,22 @@ Iniziale.</translation>
<translation>Tempo Stimato 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Caricamento...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>%1 / %2 Shader Caricate</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Avvio in corso...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Tempo Stimato %1</translation>
</message>
@@ -5409,284 +5454,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Titoli SD Installati</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Titoli NAND Installati</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Titoli di Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Aggiungi Nuova Cartella Giochi</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>Preferiti</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[non impostato]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Hat %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Asse %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Pulsante %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[sconosciuto]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Sinistra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Destra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Giù</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Su</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Avvia</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>Condividi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>Opzioni</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Touch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[inutilizzato]</translation>
</message>
@@ -5727,7 +5772,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
@@ -5740,7 +5785,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Doppi Joycon</translation>
</message>
@@ -5753,7 +5798,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Joycon Sinistro</translation>
</message>
@@ -5766,7 +5811,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Joycon Destro</translation>
</message>
@@ -5794,7 +5839,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Portatile</translation>
</message>
@@ -5915,32 +5960,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Controller GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
@@ -5985,7 +6030,7 @@ Per favore riprova o contatti gli sviluppatori.</translation>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5993,17 +6038,17 @@ Per favore riprova o contatti gli sviluppatori.</translation>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Seleziona un utente:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Utenti</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Selettore Profili</translation>
</message>
@@ -6056,7 +6101,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Stack chiamata</translation>
</message>
@@ -6064,17 +6109,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>attende il mutex 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>ha dei waiter: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>proprietario handle: 0x%1</translation>
</message>
@@ -6082,12 +6127,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>attende tutti gli oggetti</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>attende uno dei seguenti oggetti</translation>
</message>
@@ -6095,12 +6140,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>atteso da nessun thread</translation>
</message>
@@ -6108,112 +6153,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>eseguibile</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>in pausa</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>dormendo</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>attende una risposta dell&apos;IPC</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>attende degli oggetti</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>aspettando la condition variable</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>attende un indirizzo arbitro</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>in attesa di riprendere la sospensione</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>attendere</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>inizializzato</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>terminato</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>sconosciuto</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideale</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>core %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>processore = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>core ideale = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>affinity mask = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>id thread = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>priorità = %1(corrente) / %2(normale)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>Ultimi ticks in esecuzione = %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>Non in attesa per la sincronizzazione dei processi concorrenti aka Mutex.</translation>
</message>
@@ -6221,7 +6266,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>atteso dal thread</translation>
</message>
@@ -6229,7 +6274,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>&amp;Wait Tree</translation>
</message>
diff --git a/dist/languages/ja_JP.ts b/dist/languages/ja_JP.ts
index dd5a10cde..d9b5b5f30 100644
--- a/dist/languages/ja_JP.ts
+++ b/dist/languages/ja_JP.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>サーバーと通信中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>タッチパッドの左上を&lt;br&gt;タッチして下さい。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>次にタッチパッドの右下を&lt;br&gt;タッチして下さい。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>設定が完了しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -359,7 +359,19 @@ p, li { white-space: pre-wrap; }
<translation>アドレス空間チェックの無効化</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPUの設定はゲームを実行していない時にのみ変更できます。</translation>
</message>
@@ -519,11 +531,38 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>ホストMMUエミュレーションの有効化</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPUの設定はゲームを実行していない時にのみ変更できます。</translation>
</message>
@@ -681,7 +720,12 @@ p, li { white-space: pre-wrap; }
<translation>すべてのコントローラーの種類を使用する</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**yuzuを終了したときに自動的にリセットされます.</translation>
</message>
@@ -731,78 +775,78 @@ p, li { white-space: pre-wrap; }
<translation>yuzuの設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>オーディオ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>デバッグ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>ファイルシステム</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>全般</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>グラフィック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>拡張グラフィック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>ホットキー</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>操作</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>プロファイル</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>ネットワーク</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>システム</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>ゲームリスト</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1037,12 +1081,12 @@ p, li { white-space: pre-wrap; }
<translation>すべての設定をリセット</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>すべての設定がリセットされ、ゲームごとの設定もすべて削除されます。ゲームディレクトリ、プロファイル、入力プロファイルは削除されません。続行しますか?</translation>
</message>
@@ -1271,7 +1315,7 @@ p, li { white-space: pre-wrap; }
<translation>背景色:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (アセンブリシェーダ, NVIDIA のみ)</translation>
</message>
@@ -1839,7 +1883,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Lスティック</translation>
</message>
@@ -1933,14 +1977,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1959,7 +2003,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>+</translation>
</message>
@@ -1972,15 +2016,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2037,230 +2081,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Rスティック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>クリア</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[未設定]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>ボタンを反転</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>軸を反転</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>しきい値を設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>0%から100%の間の値を選択してください</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation>ジャイロのしきい値を設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>アナログスティックをマップ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>OKを押したあと, まずジョイスティックを水平方向に動かし, 次に垂直方向に動かしてください.
軸を反転させる場合は, 最初に垂直方向に動かし, 次に水平方向に動かしてください.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>デッドゾーン:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>変更範囲:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Proコントローラ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Joy-Con(L/R)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Joy-Con(L)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Joy-Con(R)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>携帯モード</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>ゲームキューブコントローラ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>Cスティック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[待機中]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>新規プロファイル</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>プロファイル名を入力:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>入力プロファイルを作成</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>プロファイル名が無効です!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>入力プロファイル &quot;%1&quot; の作成に失敗しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>入力プロファイルを削除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>入力プロファイル &quot;%1&quot; の削除に失敗しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>入力プロファイルをロード</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>入力プロファイル &quot;%1&quot; のロードに失敗しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>入力プロファイルをセーブ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>入力プロファイル &quot;%1&quot; のセーブに失敗しました</translation>
</message>
@@ -2308,7 +2352,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>設定</translation>
</message>
@@ -2344,7 +2388,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>テスト</translation>
</message>
@@ -2359,82 +2403,82 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>サーバを削除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;詳細情報&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>ポート番号に無効な文字が含まれています</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>ポート番号は0から65353の間で設定してください</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>IPアドレスが無効です</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>このUDPサーバはすでに存在してます</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>8個以上のサーバを追加することはできません</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>テスト中</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>設定中</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>テスト成功</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>サーバーからのデータ受信に成功しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>テスト失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>有効なデータを受信できませんでした。&lt;br&gt;サーバーが正しくセットアップされ、アドレスとポートが正しいことを確認してください。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>UDPテストまたはキャリブレーション実行中です。&lt;br&gt;完了までお待ちください。</translation>
</message>
@@ -2462,7 +2506,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>ネットワークインタフェース</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>なし</translation>
</message>
@@ -2515,47 +2559,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>開発元</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>アドオン</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>全般</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>システム</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>グラフィック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>高度なグラフィック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>オーディオ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>プロパティ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>共通設定を使用(%1)</translation>
</message>
@@ -2573,12 +2617,12 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>アドオン</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>名称</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>バージョン</translation>
</message>
@@ -2636,7 +2680,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>プロファイル管理はゲーム未実行時にのみ行えます。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2644,92 +2688,92 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>ユーザ名</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>ユーザ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>新しいユーザのユーザ名を入力:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>新しいユーザ名を入力:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>ユーザの削除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>ユーザ ”%1” を削除しようとしています。続行しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>ユーザ画像を選択 </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>JPEG画像 (*.jpg *.jpeg) </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>画像削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>既存画像の上書き時にエラーが発生しました: %1 </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>ファイル削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>ファイルを削除できませんでした: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>ユーザー画像ディレクトリ作成失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>ユーザー画像保存ディレクトリ”%1”を作成できませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>ユーザー画像コピーエラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>画像を”%1”から”%2”へコピー出来ませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>ユーザ画像のリサイズエラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>画像をリサイズできません</translation>
</message>
@@ -3173,17 +3217,17 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>システム設定はゲーム未実行時にのみ変更できます。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>仮想Switchコンソールを再作成しようとしています。現在使用中の仮想Switchコンソールを後から復旧させることはできません。ゲームに予期せぬ影響を与える可能性があり、古い設定などを使うと失敗するかもしれませんが、それでも続行しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>警告</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>コンソールID: 0x%1</translation>
</message>
@@ -3299,54 +3343,54 @@ Drag points to change position, or double-click table cells to edit values.</sou
<translation>削除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>ボタン</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>新規プロファイル</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>プロファイル名を入力</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>プロファイルの削除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>プロファイル%1を削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>プロファイルのリネーム</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>新しいプロファイル名:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[キーを押す]</translation>
</message>
@@ -3784,895 +3828,896 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>yuzuを改善するための&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;匿名データが収集されました&lt;/a&gt;。&lt;br/&gt;&lt;br/&gt;統計情報データを共有しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>テレメトリ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Webアプレットをロード中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Webアプレットの無効化</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>ビルド中のシェーダー数</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>現在のエミュレーション速度。値が100%より高いか低い場合、エミュレーション速度がSwitchより速いか遅いことを示します。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>ゲームが現在表示している1秒あたりのフレーム数。これはゲームごと、シーンごとに異なります。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Switchフレームをエミュレートするのにかかる時間で、フレームリミットやV-Syncは含まれません。フルスピードエミュレーションの場合、最大で16.67ミリ秒になります。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>DOCK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>最近のファイルをクリア(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>再開(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>中断(&amp;P)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>古いゲームフォーマットの警告</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>このゲームでは、分解されたROMディレクトリフォーマットを使用しています。これは、NCA、NAX、XCI、またはNSPなどに取って代わられた古いフォーマットです。分解されたROMディレクトリには、アイコン、メタデータ、およびアップデートサポートがありません。&lt;br&gt;&lt;br&gt;yuzuがサポートするSwitchフォーマットの説明については、&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;wikiをチェックしてください&lt;/a&gt;。このメッセージは二度と表示されません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>ROMロード中にエラーが発生しました!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>このROMフォーマットはサポートされていません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>ビデオコア初期化中にエラーが発生しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>ROMのロード中にエラー! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>不明なエラーが発生しました。詳細はログを確認して下さい。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>データのセーブ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Modデータ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>”%1”フォルダを開けませんでした</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>フォルダが存在しません!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>シェーダキャッシュを開けませんでした</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>このタイトル用のシェーダキャッシュディレクトリの作成に失敗しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>コンテンツ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>アップデート</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>エントリ削除</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>インストールされているゲーム%1を削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>削除しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>インストールされたゲームを正常に削除しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>%1削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>ゲームはNANDにインストールされていないため、削除できません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>インストールされたアップデートを正常に削除しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>このタイトルのアップデートはインストールされていません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>このタイトルにはDLCがインストールされていません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>%1にインストールされたDLCを正常に削除しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>転送可能なOpenGLシェーダキャッシュを削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>転送可能なVulkanシェーダキャッシュを削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>転送可能なすべてのシェーダキャッシュを削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>カスタムゲーム設定を削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>ファイル削除</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>転送可能なシェーダーキャッシュの削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>このタイトル用のシェーダキャッシュは存在しません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>転送可能なシェーダーキャッシュが正常に削除されました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>転送可能なシェーダーキャッシュを削除できませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>転送可能なシェーダキャッシュの削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>転送可能なシェーダキャッシュを正常に削除しました.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>転送可能なシェーダキャッシュディレクトリの削除に失敗しました.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>カスタム設定の削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>このタイトルのカスタム設定は存在しません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>カスタムゲーム設定を正常に削除しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>カスタムゲーム設定の削除に失敗しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFSの解析に失敗しました!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>RomFSファイルをコピー中にエラーが発生したか、ユーザー操作によりキャンセルされました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>フル</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>スケルトン</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>RomFSダンプモードの選択</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>RomFSのダンプ方法を選択してください。&lt;br&gt;”完全”はすべてのファイルが新しいディレクトリにコピーされます。&lt;br&gt;”スケルトン”はディレクトリ構造を作成するだけです。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>RomFSを解析中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS解析成功!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>操作は成功しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>”%1”を開けませんでした</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>ディレクトリの選択</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>プロパティ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>ゲームプロパティをロード出来ませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch実行ファイル (%1);;すべてのファイル (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>ファイルのロード</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>展開されているROMディレクトリを開く</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>無効なディレクトリが選択されました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>選択されたディレクトリに”main”ファイルが見つかりませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>インストール可能なスイッチファイル (*.nca *.nsp *.xci);;任天堂コンテンツアーカイブ (*.nca);;任天堂サブミッションパッケージ (*.nsp);;NXカートリッジイメージ (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>ファイルのインストール</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation><numerusform>残り %n ファイル</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>&quot;%1&quot;ファイルをインストールしています・・・</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>インストール結果</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n ファイルが新たにインストールされました
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n ファイルが上書きされました
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n ファイルのインストールに失敗しました
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>システムアプリケーション</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>システムアーカイブ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>システムアプリケーションアップデート</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>ファームウェアパッケージ(Type A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>ファームウェアパッケージ(Type B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>ゲーム</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>ゲームアップデート</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>ゲームDLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>差分タイトル</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>NCAインストール種別を選択・・・</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>インストールするNCAタイトル種別を選択して下さい:
(ほとんどの場合、デフォルトの”ゲーム”で問題ありません。)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>インストール失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>選択されたNCAのタイトル種別が無効です。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>ファイルが存在しません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>ファイル”%1”が存在しません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>yuzuアカウントが存在しません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>ゲームの互換性テストケースを送信するには、yuzuアカウントをリンクする必要があります。&lt;br&gt;&lt;br/&gt;yuzuアカウントをリンクするには、エミュレーション > 設定 > Web から行います。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>URLオープンエラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>URL&quot;%1&quot;を開けません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation> TAS 記録中</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>プレイヤー1のファイルを上書きしますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>無効な設定を検出しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>携帯コントローラはドックモードで使用できません. Proコントローラが選択されます.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>amiiboファイル (%1);;すべてのファイル (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>amiiboのロード</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>amiiboデータファイルを開けませんでした</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>amiiboデータファイル”%1”を読み込めませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>amiiboデータファイルを読み込み中にエラーが発生した</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>amiiboデータを完全には読み取ることができませんでした。%1バイトを読み込もうとしましたが、%2バイトしか読み取れませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>amiiboデータ読み込み中にエラーが発生しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>amiiboデータをロードできませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>スクリーンショットのキャプチャ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG画像 (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS 状態: 実行中 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>TAS 状態: 記録中 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS 状態: アイドル %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>TAS 状態: 無効</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>実行停止(&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>実行(&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>記録停止(&amp;R)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>記録(&amp;R)</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>構築中: %n シェーダー</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>拡大率: %1倍</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>速度:%1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>速度:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>ゲーム:%1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>フレーム:%1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU HIGH</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EXTREME</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>GPU ERROR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>ロードしようとしているゲームはプレイする前に、追加のファイルを必要とします。それはSwitchからダンプする必要があります。&lt;br/&gt;&lt;br/&gt;これらのファイルのダンプの詳細については、次のWikiページを参照してください:&lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;スイッチコンソールからのシステムアーカイブと共有フォントをダンプする&lt;/a&gt;。&lt;br/&gt;&lt;br/&gt;ゲームリストに戻りますか?エミュレーションを続けると、クラッシュ、保存データの破損、またはその他のバグが発生する可能性があります。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzuはSwitchのシステムアーカイブ &quot;%1&quot; を見つけられませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzuはSwitchのシステムアーカイブ &quot;%1&quot; &quot;%2&quot; を見つけられませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>システムアーカイブが見つかりません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>システムアーカイブが見つかりません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzuはSwitchの共有フォント &quot;%1&quot; を見つけられませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>共有フォントが存在しません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>共有フォントが存在しません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>致命的なエラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzuが致命的なエラーを検出しました。詳細については、ログを参照してください。ログへのアクセスの詳細については、次のページを参照してください。&lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;ログファイルをアップロードする方法&lt;/a&gt;。&lt;br/&gt;&lt;br/&gt;ゲームリストに戻りますか?エミュレーションを続けると、クラッシュ、保存データの破損、またはその他のバグが発生する可能性があります。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>致命的なエラー発生</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>キーの再取得確認</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4689,37 +4734,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
これにより、自動生成されたキーファイルが削除され、キー導出モジュールが再実行されます。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>ヒューズがありません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation> - BOOT0がありません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - BCPKG2-1-Normal-Mainがありません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation> - PRODINFOがありません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>派生コンポーネントがありません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>暗号化キーがありません。&lt;br&gt;キー、ファームウェア、ゲームを取得するには&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu クイックスタートガイド&lt;/a&gt;を参照ください。&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4728,39 +4773,39 @@ on your system&apos;s performance.</source>
1分以上かかります。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>派生キー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>RomFSダンプターゲットの選択</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>ダンプしたいRomFSを選択して下さい。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>yuzuを終了してもよろしいですか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>エミュレーションを停止してもよろしいですか?セーブされていない進行状況は失われます。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4772,38 +4817,38 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGLは使用できません!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzuはOpenGLサポート付きでコンパイルされていません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>OpenGL初期化エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>GPUがOpenGLをサポートしていないか、グラフィックスドライバーが最新ではありません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>OpenGL4.6初期化エラー!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>GPUがOpenGL4.6をサポートしていないか, グラフィックスドライバーが最新ではありません.&lt;br&gt;&lt;br&gt;GL レンダラ:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>GPUが1つ以上の必要なOpenGL拡張機能をサポートしていない可能性があります. 最新のグラフィックドライバを使用していることを確認してください.&lt;br&gt;&lt;br&gt;GL レンダラ:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;サポートされていない拡張機能:&lt;br&gt;%2</translation>
</message>
@@ -4965,77 +5010,77 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>パーフェクト</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>ゲームはオーディオ、またはグラフィックの不具合なしで完璧に動作し、回避策なしで期待通りに動作します。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>グレート</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>ゲームの動作にはグラフィック、またはオーディオの軽微な不具合がありますが、最初から最後までプレイ可能です。いくつかの回避策が必要な場合があります。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>ゲームの動作にはグラフィック、またはオーディオの重大な不具合がありますが、回避策を使うことで最初から最後までプレイ可能です。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>NG</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>ゲームは動作しますが、グラフィック、またはオーディオに重大な不具合があります。回避策を使用しても不具合が原因で特定の場所から進めなくなります。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>イントロ/メニュー</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>グラフィック、またはオーディオの重大な不具合のため、ゲームはプレイ不可能です。スタート画面から先に進めることは出来ません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>起動せず</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>ゲームは起動時にクラッシュしました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>未テスト</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>ゲームはまだテストされていません。</translation>
</message>
@@ -5069,22 +5114,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>これらがインストールするファイルであることを確認してください。</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>アップデート、またはDLCをインストールすると、以前にインストールしたものが上書きされます。</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>インストール</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>ファイルをNANDへインストール</translation>
</message>
@@ -5117,22 +5162,22 @@ Screen.</source>
<translation>予想時間 5分4秒</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>ロード中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>シェーダをロード中 %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>起動中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>予想時間 %1</translation>
</message>
@@ -5412,284 +5457,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>インストール済みSDタイトル</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>インストール済みNANDタイトル</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>システムタイトル</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>新しいゲームディレクトリを追加する</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>お気に入り</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[未設定]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>十字キー %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>軸 %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>ボタン %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[不明]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>左</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>右</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>下</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>上</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>開始</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>HOME</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>タッチの設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[未定義]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[無効]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[未使用]</translation>
</message>
@@ -5730,7 +5775,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Proコントローラ</translation>
</message>
@@ -5743,7 +5788,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Joy-Con(L/R)</translation>
</message>
@@ -5756,7 +5801,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Joy-Con(L)</translation>
</message>
@@ -5769,7 +5814,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Joy-Con(R)</translation>
</message>
@@ -5797,7 +5842,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>携帯モード</translation>
</message>
@@ -5918,32 +5963,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>ゲームキューブコントローラ</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
@@ -5987,7 +6032,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5995,17 +6040,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>ユーザー選択:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>ユーザー</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>プロファイル選択</translation>
</message>
@@ -6054,7 +6099,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>コールスタック</translation>
</message>
@@ -6062,17 +6107,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>ミューテックス 0x%1 待ち</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>待機:%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>オーナーハンドル: 0x%1</translation>
</message>
@@ -6080,12 +6125,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>全オブジェクト待ち</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>以下のオブジェクトのうちの一つを待機中</translation>
</message>
@@ -6093,12 +6138,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>スレッドなしで待機</translation>
</message>
@@ -6106,112 +6151,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>中断</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>休止中</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>IPC返答待ち</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>オブジェクト待ち</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>条件変数待ち</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>アドレス決定待ち</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>不明</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>理想的</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>コア %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>プロセッサ = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>イデアルコア = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>アフィニティマスク = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>スレッドID = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>優先度 = %1(現在) / %2(通常)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>最終実行刻み = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>ミューテックス待ちではない</translation>
</message>
@@ -6219,7 +6264,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>スレッドによる待機</translation>
</message>
@@ -6227,7 +6272,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>&amp;Wait Tree</translation>
</message>
diff --git a/dist/languages/ko_KR.ts b/dist/languages/ko_KR.ts
index d679377fc..5ed738a86 100644
--- a/dist/languages/ko_KR.ts
+++ b/dist/languages/ko_KR.ts
@@ -46,32 +46,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>서버와 통신하는 중...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>취소</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>터치패드의 &lt;br&gt; 상단 좌측 모서리를 눌러주세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>이제 터치패드의 &lt;br&gt; 하단 우측 모서리를 눌러주세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>설정 완료!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>확인</translation>
</message>
@@ -224,7 +224,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -353,7 +353,19 @@ p, li { white-space: pre-wrap; }
<translation>주소 공간 검사 비활성화</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU 설정은 게임이 작동하고 있지 않을 때만 수정 가능합니다.</translation>
</message>
@@ -511,11 +523,38 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>호스트 MMU 에뮬레이션 활성화</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU 설정은 게임이 작동하고 있지 않을 때만 가능합니다.</translation>
</message>
@@ -673,7 +712,12 @@ p, li { white-space: pre-wrap; }
<translation>모든 컨트롤러 유형 활성화</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Yuzu가 종료되면 자동으로 재설정됩니다.</translation>
</message>
@@ -723,78 +767,78 @@ p, li { white-space: pre-wrap; }
<translation>yuzu 설정</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>오디오</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>디버그</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>파일 시스템</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>일반</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>그래픽</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>그래픽 고급</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>단축키</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>조작</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>프로필</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>네트워크</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>시스템</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>게임 목록</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>웹</translation>
</message>
@@ -1029,12 +1073,12 @@ p, li { white-space: pre-wrap; }
<translation>모든 설정 초기화</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>모든 환경 설정과 게임별 맞춤 설정이 초기화됩니다. 게임 디렉토리나 프로필, 또는 입력 프로필은 삭제되지 않습니다. 진행하시겠습니까?</translation>
</message>
@@ -1263,7 +1307,7 @@ p, li { white-space: pre-wrap; }
<translation>배경색:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM(어셈블리 셰이더, NVIDIA 전용)</translation>
</message>
@@ -1831,7 +1875,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>L 스틱</translation>
</message>
@@ -1925,14 +1969,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1951,7 +1995,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>+</translation>
</message>
@@ -1964,15 +2008,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2029,230 +2073,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>R 스틱</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>초기화</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[설정 안 됨]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>토글 버튼</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>버튼 반전</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>축 뒤집기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>임계값 설정</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>0%에서 100% 안의 값을 고르세요</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation>자이로 임계값 설정</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>아날로그 스틱 맵핑</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>OK 버튼을 누른 후에 먼저 조이스틱을 수평으로 움직이고, 그 다음 수직으로 움직이세요.
축을 뒤집으려면 수직으로 먼저 움직인 뒤에 수평으로 움직이세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>데드존: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>수정자 범위: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>프로 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>듀얼 조이콘</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>왼쪽 조이콘</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>오른쪽 조이콘</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>휴대 모드</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>GameCube 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>몬스터볼 Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>NES 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>SNES 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>N64 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>세가 제네시스</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>시작 / 일시 정지</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>컨트롤 스틱</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>흔드세요!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[대기중]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>새 프로필</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>프로필 이름을 입력하세요:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>입력 프로필 생성</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>해당 프로필 이름은 사용할 수 없습니다!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; 입력 프로필 생성 실패</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>입력 프로필 삭제</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; 입력 프로필 삭제 실패</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>입력 프로필 불러오기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; 입력 프로필 불러오기 실패</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>입력 프로필 저장</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; 입력 프로필 저장 실패</translation>
</message>
@@ -2300,7 +2344,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>설정</translation>
</message>
@@ -2336,7 +2380,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>테스트</translation>
</message>
@@ -2351,82 +2395,82 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>원격 서버</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;자세히 알아보기&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>포트 번호에 유효하지 않은 글자가 있습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>포트 번호는 0부터 65353까지이어야 합니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>IP 주소가 유효하지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>해당 UDP 서버는 이미 존재합니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>8개보다 많은 서버를 추가하실 수는 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>테스트 중</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>설정 중</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>테스트 성공</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>서버에서 성공적으로 데이터를 받았습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>테스트 실패</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>서버에서 유효한 데이터를 수신할 수 없습니다.&lt;br&gt;서버가 올바르게 설정되어 있고 주소와 포트가 올바른지 확인하십시오.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>UDP 테스트와 교정 설정이 진행 중입니다.&lt;br&gt;끝날 때까지 기다려주세요.</translation>
</message>
@@ -2454,7 +2498,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>네트워크 인터페이스</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>없음</translation>
</message>
@@ -2507,47 +2551,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>개발자</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>부가 기능</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>일반</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>시스템</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>그래픽</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>고급 그래픽</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>오디오</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>속성</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>전역 설정 사용(%1)</translation>
</message>
@@ -2565,12 +2609,12 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>애드온</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>패치 이름</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>버전</translation>
</message>
@@ -2628,7 +2672,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>프로필 관리자는 게임이 작동 중이지 않을 때만 사용 가능합니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2636,92 +2680,92 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>유저 이름을 입력하세요</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>유저</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>새로운 유저를 위한 유저 이름을 입력하세요:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>새로운 유저 이름을 입력하세요:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>삭제 확인</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>사용자 &quot;%1&quot;을(를) 삭제하려고 합니다. 계속하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>유저 이미지 선택</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>JPEG 이미지 (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>이미지 삭제 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>%1에서 이전 이미지를 덮어쓰는 중 오류가 발생했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>파일 삭제 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>기존 파일을 삭제할 수 없음: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>사용자 이미지 디렉토리 생성 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>사용자 이미지를 저장하기 위한 %1 디렉토리를 만들 수 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>사용자 이미지 복사 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>이미지를 %1에서 %2로 복사할 수 없습니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>사용자 이미지 크기 조정 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>이미지 크기를 조정할 수 없습니다</translation>
</message>
@@ -3165,17 +3209,17 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>시스템 설정은 게임이 꺼져 있을 때만 수정 가능합니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>현재 사용하는 가상 Switch를 새로운 가상 Switch로 교체 합니다. 기존의 가상 Switch는 복구가 불가능해집니다. 게임에 예상치 못한 영향을 끼칠 수도 있습니다. 오래된 게임 설정을 사용할 경우 실패할 수도 있습니다. 계속하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>경고</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>콘솔 ID: 0x%1</translation>
</message>
@@ -3291,54 +3335,54 @@ Drag points to change position, or double-click table cells to edit values.</sou
<translation>포인트 삭제하기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>버튼</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>새 프로필</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>새 프로필의 이름을 적으시오.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>프로필 삭제하기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>%1 프로필을 삭제하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>프로필 이름 재설정</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>새 이름:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[키 입력]</translation>
</message>
@@ -3776,896 +3820,897 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>yuzu를 개선하기 위해 &lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;익명 데이터가 수집됩니다.&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;사용 데이터를 공유하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>원격 측정</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>웹 애플릿을 로드하는 중...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>웹 애플릿 비활성화</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>웹 애플릿을 비활성화할 시 앞으로 에뮬레이트할 때 해당 화면이 더 이상 뜨지 않습니다. 이는 알 수 없는 문제를 일으킬 수 있으며 Super Mario 3D All-Stars에만 사용해야 합니다. 웹 애플릿을 정말로 비활성화 하시겠습니까?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>현재 생성중인 셰이더의 양</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>현재 선택된 해상도 배율입니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>현재 에뮬레이션 속도. 100%보다 높거나 낮은 값은 에뮬레이션이 Switch보다 빠르거나 느린 것을 나타냅니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>게임이 현재 표시하고 있는 초당 프레임 수입니다. 이것은 게임마다 다르고 장면마다 다릅니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>프레임 제한이나 수직 동기화를 계산하지 않고 Switch 프레임을 에뮬레이션 하는 데 걸린 시간. 최대 속도로 에뮬레이트 중일 때에는 대부분 16.67 ms 근처입니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>거치 모드</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>Clear Recent Files(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>계속(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>일시중지(&amp;P)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation>yuzu가 게임을 실행중입니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>오래된 게임 포맷 경고</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>이 게임 파일은 &apos;분해된 ROM 디렉토리&apos;라는 오래된 포맷을 사용하고 있습니다. 해당 포맷은 NCA, NAX, XCI 또는 NSP와 같은 다른 포맷으로 대체되었으며 분해된 ROM 디렉토리에는 아이콘, 메타 데이터 및 업데이트가 지원되지 않습니다.&lt;br&gt;&lt;br&gt;yuzu가 지원하는 다양한 Switch 포맷에 대한 설명은 &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;위키를 확인하세요.&lt;/a&gt; 이 메시지는 다시 표시되지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>ROM 로드 중 오류 발생!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>지원되지 않는 롬 포맷입니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>비디오 코어를 초기화하는 동안 오류가 발생했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>비디오 코어를 실행하는 동안 yuzu에 오류가 발생했습니다. 이것은 일반적으로 통합 드라이버를 포함하여 오래된 GPU 드라이버로 인해 발생합니다. 자세한 내용은 로그를 참조하십시오. 로그 액세스에 대한 자세한 내용은 &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;로그 파일 업로드 방법&lt;/a&gt; 페이지를 참조하세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>ROM 불러오는 중 오류 발생! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;파일들을 다시 덤프하기 위해&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 빠른 시작 가이드&lt;/a&gt; 를 따라주세요.&lt;br&gt;도움이 필요할 시 yuzu 위키&lt;/a&gt; 를 참고하거나 yuzu 디스코드&lt;/a&gt; 를 이용해보세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>알 수 없는 오류가 발생했습니다. 자세한 내용은 로그를 참고하십시오.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64비트)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32비트)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>세이브 데이터</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>모드 데이터</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>%1 폴더 열기 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>폴더가 존재하지 않습니다!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>전송 가능한 셰이더 캐시 열기 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>이 타이틀에 대한 셰이더 캐시 디렉토리를 생성하지 못했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>컨텐츠</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>업데이트</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>항목 제거</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>설치된 게임을 삭제 %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>삭제 완료</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>설치된 기본 게임을 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>삭제 중 오류 발생 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>기본 게임은 NAND에 설치되어 있지 않으며 제거 할 수 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>설치된 업데이트를 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>이 타이틀에 대해 설치된 업데이트가 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>이 타이틀에 설치된 DLC가 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>설치된 %1 DLC를 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>OpenGL 전송 가능한 셰이더 캐시를 삭제하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Vulkan 전송 가능한 셰이더 캐시를 삭제하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>모든 전송 가능한 셰이더 캐시를 삭제하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>사용자 지정 게임 구성을 제거 하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>파일 제거</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>전송 가능한 셰이더 캐시 제거 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>이 타이틀에 대한 셰이더 캐시가 존재하지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>전송 가능한 셰이더 캐시를 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>전송 가능한 셰이더 캐시를 제거하지 못했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>전송 가능한 셰이더 캐시 제거 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>전송 가능한 셰이더 캐시를 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>전송 가능한 셰이더 캐시 디렉토리를 제거하지 못했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>사용자 지정 구성 제거 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>이 타이틀에 대한 사용자 지정 구성이 존재하지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>사용자 지정 게임 구성을 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>사용자 지정 게임 구성을 제거하지 못했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS 추출 실패!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>RomFS 파일을 복사하는 중에 오류가 발생했거나 사용자가 작업을 취소했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>전체</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>뼈대</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>RomFS 덤프 모드 선택</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>RomFS 덤프 방법을 선택하십시오.&lt;br&gt;전체는 모든 파일을 새 디렉토리에 복사하고&lt;br&gt;뼈대는 디렉토리 구조 만 생성합니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>%1에 RomFS를 추출하기에 충분한 여유 공간이 없습니다. 공간을 확보하거나 에뮬레이견 &gt; 설정 &gt; 시스템 &gt; 파일시스템 &gt; 덤프 경로에서 다른 덤프 디렉토리를 선택하십시오.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>RomFS 추출 중...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>취소</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS 추출이 성공했습니다!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>작업이 성공적으로 완료되었습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>%1 열기 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>경로 선택</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>속성</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>게임 속성을 로드 할 수 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch 실행파일 (%1);;모든 파일 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>파일 로드</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>추출된 ROM 디렉토리 열기</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>잘못된 디렉토리 선택</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>선택한 디렉토리에 &apos;main&apos;파일이 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>설치 가능한 Switch 파일 (*.nca *.nsp *.xci);;Nintendo 컨텐츠 아카이브 (*.nca);;Nintendo 서브미션 패키지 (*.nsp);;NX 카트리지 이미지 (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>파일 설치</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n개의 파일이 남음</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>파일 &quot;%1&quot; 설치 중...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>설치 결과</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>충돌을 피하기 위해, 낸드에 베이스 게임을 설치하는 것을 권장하지 않습니다.
이 기능은 업데이트나 DLC를 설치할 때에만 사용해주세요.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n개의 파일이 새로 설치되었습니다.
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n개의 파일을 덮어썼습니다.
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n개의 파일을 설치하지 못했습니다.
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>시스템 애플리케이션</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>시스템 아카이브</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>시스템 애플리케이션 업데이트</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>펌웨어 패키지 (A타입)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>펌웨어 패키지 (B타입)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>게임</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>게임 업데이트</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>게임 DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>델타 타이틀</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>NCA 설치 유형 선택...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>이 NCA를 설치할 타이틀 유형을 선택하세요:
(대부분의 경우 기본값인 &apos;게임&apos;이 괜찮습니다.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>설치 실패</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>NCA 타이틀 유형이 유효하지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>파일을 찾을 수 없음</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>파일 &quot;%1&quot;을 찾을 수 없습니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>yuzu 계정 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>게임 호환성 테스트 결과를 제출하려면 yuzu 계정을 연결해야합니다.&lt;br&gt;&lt;br/&gt;yuzu 계정을 연결하려면 에뮬레이션 &amp;gt; 설정 &amp;gt; 웹으로 가세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>URL 열기 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>URL &quot;%1&quot;을 열 수 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>TAS 레코딩</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>플레이어 1의 파일을 덮어쓰시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>유효하지 않은 설정 감지</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>휴대 모드용 컨트롤러는 거치 모드에서 사용할 수 없습니다. 프로 컨트롤러로 대신 선택됩니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo 파일 (%1);; 모든 파일 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Amiibo 로드</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Amiibo 데이터 파일 열기 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Amiibo 파일 &quot;%1&quot;을(를) 읽을 수 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Amiibo 데이터 파일 읽기 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Amiibo 데이터를 완전히 읽을 수 없습니다. %1 바이트를 읽으려고 했지만 %2 바이트만 읽을 수 있었습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Amiibo 데이터 로드 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Amiibo 데이터를 로드할 수 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>스크린샷 캡처</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG 이미지 (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS 상태: %1/%2 실행 중</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>TAS 상태: 레코딩 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS 상태: 유휴 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>TAS 상태: 유효하지 않음</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>실행 중지(&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>시작(&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>레코딩 중지(&amp;e)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>레코드(&amp;R)</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>빌드중: %n개 셰이더</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>스케일: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>속도: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>속도: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>게임: %1 FPS (제한없음)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>게임: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>프레임: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU 보통</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU 높음</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU 굉장함</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>GPU 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>NEAREST</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>BILINEAR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>BICUBIC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>GAUSSIAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>AA 없음</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>해당 게임은 플레이하기 전에 Switch 기기에서 추가 파일을 덤프해야합니다.&lt;br/&gt;&lt;br/&gt;이러한 파일 덤프에 대한 자세한 내용은 다음 위키 페이지를 참조하십시오: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Switch 콘솔에서 시스템 아카이브 및 공유 글꼴 덤프&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;게임 목록으로 돌아가시겠습니까? 이를 무시하고 에뮬레이션을 계속하면 충돌, 저장 데이터 손상 또는 기타 버그가 발생할 수 있습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu가 Switch 시스템 아카이브를 찾을 수 없습니다. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu가 Switch 시스템 아카이브를 찾을 수 없습니다: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>시스템 아카이브를 찾을 수 없음</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>시스템 아카이브 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu가 Switch 공유 글꼴을 찾을 수 없습니다. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>공유 글꼴을 찾을 수 없음</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>공유 글꼴 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>치명적인 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>치명적인 오류가 발생했습니다. 자세한 내용은 로그를 확인하십시오. 로그 액세스에 대한 자세한 내용은 다음 페이지를 참조하십시오: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;로그 파일을 업로드하는 방법&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;게임 목록으로 돌아가시겠습니까? 이를 무시하고 에뮬레이션을 계속하면 충돌, 저장 데이터 손상 또는 기타 버그가 발생할 수 있습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>치명적인 오류 발생</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>키 재생성 확인</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4682,37 +4727,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
자동 생성되었던 키 파일들이 삭제되고 키 생성 모듈이 다시 실행됩니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>fuses 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation> - BOOT0 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - BCPKG2-1-Normal-Main 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation> - PRODINFO 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>파생 구성 요소 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>암호화 키가 없습니다. &lt;br&gt;모든 키, 펌웨어 및 게임을 얻으려면 &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 빠른 시작 가이드&lt;/a&gt;를 따르세요.&lt;br&gt;&lt;br&gt; &lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4721,39 +4766,39 @@ on your system&apos;s performance.</source>
소요될 수 있습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>파생 키</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>RomFS 덤프 대상 선택</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>덤프할 RomFS를 선택하십시오.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>yuzu를 닫으시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>에뮬레이션을 중지하시겠습니까? 모든 저장되지 않은 진행 상황은 사라집니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4765,38 +4810,38 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL을 사용할 수 없습니다!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu는 OpenGL 지원으로 컴파일되지 않았습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>OpenGL을 초기화하는 동안 오류가 발생했습니다!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>사용하시는 GPU가 OpenGL을 지원하지 않거나, 최신 그래픽 드라이버가 설치되어 있지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>OpenGL 4.6 초기화 중 오류 발생!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>사용하시는 GPU가 OpenGL 4.6을 지원하지 않거나 최신 그래픽 드라이버가 설치되어 있지 않습니다. &lt;br&gt;&lt;br&gt;GL 렌더링 장치:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>사용하시는 GPU가 1개 이상의 OpenGL 확장 기능을 지원하지 않습니다. 최신 그래픽 드라이버가 설치되어 있는지 확인하세요. &lt;br&gt;&lt;br&gt;GL 렌더링 장치:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;지원하지 않는 확장 기능:&lt;br&gt;%2</translation>
</message>
@@ -4958,82 +5003,82 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>완벽함</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>그래픽이나 오디오 문제 없이 게임의 모든 기능이 정상 작동합니다.
별도의 해결책이 필요하지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>좋음</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>그래픽이나 오디오 문제가 약간 있지만 게임을 끝까지 클리어할 수 있습니다.
별도의 해결책이 필요할 수 있습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>괜찮음</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>그래픽이나 오디오 문제가 다소 있지만 게임을 끝까지 클리어할 수는 있습니다.
별도의 해결책이 필요합니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>나쁨</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>게임은 작동하지만 그래픽이나 오디오 문제가 많으며 특정 구간에서는 완전히 깨져서 진행이 불가합니다.
별도의 해결책을 써도 마찬가지입니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>인트로/메뉴</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>그래픽이나 오디오 문제가 심각해서 게임 플레이 자체가 불가하거나 시작 화면에서
넘어가지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>실행 불가</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>게임 실행 시 크래시가 일어납니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>테스트되지 않음</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>이 게임은 아직 테스트되지 않았습니다.</translation>
</message>
@@ -5067,22 +5112,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>설치하려는 파일이 맞는지 확인하십시오.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>업데이트 또는 DLC를 설치하면 이전에 설치된 업데이트를 덮어 씁니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>설치</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>NAND에 파일 설치</translation>
</message>
@@ -5115,22 +5160,22 @@ Screen.</source>
<translation>예상 시간 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>불러오는 중...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>셰이더 로딩 %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>실행 중...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>예상 시간 %1</translation>
</message>
@@ -5410,284 +5455,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>설치된 SD 타이틀</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>설치된 NAND 타이틀</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>시스템 타이틀</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>새 게임 디렉토리 추가</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>선호하는 게임</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[설정 안 됨]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>방향키 %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>축 %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>%1 버튼</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[알 수 없음]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>왼쪽</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>오른쪽</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>아래</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>위</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation>동그라미</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation>엑스</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation>네모</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation>세모</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>Share</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>Options</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>홈</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>터치</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>휠</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation>뒤로가기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation>앞으로가기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation>Task</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[설정안됨]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation>%1%2%3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[유효하지않음]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation>%1%2방향키 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation>%1%2Axis %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Axis %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2모션 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation>%1%2버튼 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[미사용]</translation>
</message>
@@ -5728,7 +5773,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>프로 컨트롤러</translation>
</message>
@@ -5741,7 +5786,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>듀얼 조이콘</translation>
</message>
@@ -5754,7 +5799,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>왼쪽 조이콘</translation>
</message>
@@ -5767,7 +5812,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>오른쪽 조이콘</translation>
</message>
@@ -5795,7 +5840,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>휴대 모드</translation>
</message>
@@ -5916,32 +5961,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>GameCube 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>몬스터볼 Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation>NES 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation>SNES 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation>N64 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>세가 제네시스</translation>
</message>
@@ -5986,7 +6031,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5994,17 +6039,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>사용자를 선택하세요:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>사용자</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>프로필 선택</translation>
</message>
@@ -6057,7 +6102,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>콜 스택</translation>
</message>
@@ -6065,17 +6110,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>뮤텍스 0x%1을 기다립니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>대기: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>소유자 핸들: 0x%1</translation>
</message>
@@ -6083,12 +6128,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>모든 개체를 기다립니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>다음 개체 중 하나를 기다리는 중입니다</translation>
</message>
@@ -6096,12 +6141,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>스레드를 기다리고 있지 않습니다</translation>
</message>
@@ -6109,112 +6154,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>실행 가능</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>일시중지</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>수면중</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>IPC 회신을 기다립니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>개체를 기다립니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>조건 변수를 기다립니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>주소 결정인을 기다립니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>보류 재개를 기다리는 중</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>기다리는 중</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>초기화됨</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>종료됨</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>알 수 없음</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>이상적</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>코어 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>프로세서 = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>이상적인 코어 = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>선호도 마스크 = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>스레드 아이디 = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>우선순위 = %1(현재) / %2(일반)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>마지막 실행 틱 = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>뮤텍스를 기다리지 않음</translation>
</message>
@@ -6222,7 +6267,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>스레드에서 기다림</translation>
</message>
@@ -6230,7 +6275,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>대기 트리(&amp;W)</translation>
</message>
diff --git a/dist/languages/nb.ts b/dist/languages/nb.ts
index 4f146ef11..7da2cc457 100644
--- a/dist/languages/nb.ts
+++ b/dist/languages/nb.ts
@@ -19,7 +19,7 @@
<message>
<location filename="../../src/yuzu/aboutdialog.ui" line="73"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;%1 (%2)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;%1 (%2)&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/aboutdialog.ui" line="86"/>
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Kommuniserer med serveren...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Avbryt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
- <translation type="unfinished"/>
+ <translation>Berør øverste venstre hjørne &lt;br&gt;på styreplaten.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
- <translation type="unfinished"/>
+ <translation>Berør så nederste venstre hjørne &lt;br&gt;på styreplaten.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Konfigurasjon ferdig!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -183,7 +183,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/compatdb.cpp" line="73"/>
<source>An error occurred while sending the Testcase</source>
- <translation type="unfinished"/>
+ <translation>En feil oppstod under sending av testtilfellet</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.cpp" line="75"/>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -276,7 +276,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="63"/>
<source>We recommend setting accuracy to &quot;Auto&quot;.</source>
- <translation type="unfinished"/>
+ <translation>Vi anbefaler å sette nøyaktigheten til &quot;Auto&quot;.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="80"/>
@@ -293,19 +293,23 @@ p, li { white-space: pre-wrap; }
<source>
&lt;div&gt;This option improves speed by reducing accuracy of fused-multiply-add instructions on CPUs without native FMA support.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+ &lt;div&gt;Denne innstillingen øker hastigheten ved å redusere nøyaktigheten til fused-multiply-add–instruksjoner på prosessorer uten innebygd FMA-støtte.&lt;/div&gt;
+ </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="101"/>
<source>Unfuse FMA (improve performance on CPUs without FMA)</source>
- <translation type="unfinished"/>
+ <translation>Del opp FMA (forbedre ytelsen på prosessorer uten FMA)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="108"/>
<source>
&lt;div&gt;This option improves the speed of some approximate floating-point functions by using less accurate native approximations.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+ &lt;div&gt;Denne innstillingen øker hastigheten til noen omtrentlige flyttallsfunksjoner ved å bruke mindre nøyaktige innebygde tilnærminger.&lt;/div&gt;
+ </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="113"/>
@@ -317,39 +321,59 @@ p, li { white-space: pre-wrap; }
<source>
&lt;div&gt;This option improves the speed of 32 bits ASIMD floating-point functions by running with incorrect rounding modes.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+ &lt;div&gt;Denne innstillingen øker hastigheten til 32-bit ASIMD flyttallsfunksjoner ved å kjøre med ukorrekte avrundingsmoduser.&lt;/div&gt;
+ </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="125"/>
<source>Faster ASIMD instructions (32 bits only)</source>
- <translation type="unfinished"/>
+ <translation>Raskere ASIMD-instruksjoner (kun 32-bit)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="132"/>
<source>
&lt;div&gt;This option improves speed by removing NaN checking. Please note this also reduces accuracy of certain floating-point instructions.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+ &lt;div&gt;Denne innstillingen øker hastigheten ved å fjerne NaN-sjekking. Merk at dette også reduserer nøyaktigheten til enkelte flyttallsinstruskjoner.&lt;/div&gt;
+ </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="137"/>
<source>Inaccurate NaN handling</source>
- <translation type="unfinished"/>
+ <translation>Unøyaktig NaN-håndtering</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="144"/>
<source>
&lt;div&gt;This option improves speed by eliminating a safety check before every memory read/write in guest. Disabling it may allow a game to read/write the emulator's memory.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+ &lt;div&gt;Denne innstillingen øker hastigheten ved å eliminere en sikkerhetskontroll før hver lese- og skriveoperasjon til minne fra gjest. Å slå den av kan la et spill lese fra og skrive til emulatorens minne.&lt;/div&gt;
+ </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="149"/>
<source>Disable address space checks</source>
+ <translation>Slå av adresseromskontroller</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Denne innstillingen øker hastigheten ved å bruke kun semantikken til cmpxchg for å bevare integriteten til eksklusiv aksess–instruksjoner. Merk at dette kan resultere i at programmet går i baklås eller andre datakappløp.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU-innstillinger er bare tilgjengelige når ingen spill kjører.</translation>
</message>
@@ -369,7 +393,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="25"/>
<source>Toggle CPU Optimizations</source>
- <translation type="unfinished"/>
+ <translation>Veksle prosessoroptimaliseringer</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="31"/>
@@ -455,7 +479,9 @@ p, li { white-space: pre-wrap; }
<source>
&lt;div&gt;Enables miscellaneous IR optimizations.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+ &lt;div&gt;Slår på diverse IR-optimaliseringer.&lt;/div&gt;
+ </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="120"/>
@@ -482,15 +508,53 @@ p, li { white-space: pre-wrap; }
&lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
&lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all memory accesses to use Software MMU Emulation.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Denne optimaliseringen gjør minneaksesser raskere for gjesteprogrammet.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Å slå den på gjør at gjestens minne lese- og skriveoperasjoner går direkte til minnet og bruker vertens MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Å slå den av tvinger all minneaksess til å bruke programvarebasert MMU-emulering.&lt;/div&gt;
+ </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation type="unfinished"/>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation>Slå på verts-MMU–emulering (generelle minneinstruksjoner)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Denne optimaliseringen gjør eksklusivt minne–aksess raskere for gjesteprogrammet.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Å slå den på gjør at gjestens eksklusivt minne lese- og -skriveoperasjoner går direkte til minne og bruker vertens MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Å slå den av tvinger all eksklusivt minne–aksess til å bruke programvarebasert MMU-emulering.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation>Slå på verts-MMU-emulering (eksklusivt minne-instruksjoner)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Denne optimaliseringen gjør eksklusivt minne–aksess raskere for gjesteprogrammet.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Å slå den på reduserer kostnadene ved fastmem-feil ved eksklusivt minne–aksess.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation>Slå på rekompilering av ekslusivt minne–instruksjoner</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU-innstillinger er bare tilgjengelige når ingen spill kjører.</translation>
</message>
@@ -510,7 +574,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="29"/>
<source>Show Log in Console</source>
- <translation type="unfinished"/>
+ <translation>Vis logg i konsollen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="36"/>
@@ -520,12 +584,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="46"/>
<source>When checked, the max size of the log increases from 100 MB to 1 GB</source>
- <translation type="unfinished"/>
+ <translation>Når dette er på øker maksstørrelsen til loggen fra 100 MB til 1 GB</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="49"/>
<source>Enable Extended Logging**</source>
- <translation type="unfinished"/>
+ <translation>Slå på utvidet loggføring**</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="59"/>
@@ -545,7 +609,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="91"/>
<source>When checked, the graphics API enters a slower debugging mode</source>
- <translation type="unfinished"/>
+ <translation>Når dette er på går grafikk–API-et inn i en tregere feilsøkingsmodus</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="94"/>
@@ -590,12 +654,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="140"/>
<source>Enable Shader Feedback</source>
- <translation type="unfinished"/>
+ <translation>Slå på shader-tilbakemelding</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="147"/>
<source>When checked, it executes shaders without loop logic changes</source>
- <translation type="unfinished"/>
+ <translation>Når dette er på kjører shader-e uten endring i løkkelogikk</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="150"/>
@@ -630,7 +694,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="196"/>
<source>Enable CPU Debugging</source>
- <translation type="unfinished"/>
+ <translation>Slå på prosessorfeilsøking</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="203"/>
@@ -645,12 +709,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="217"/>
<source>Enable all Controller Types</source>
+ <translation>Slå på alle kontrollertyper</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
- <translation type="unfinished"/>
+ <translation>**Dette blir automatisk tilbakestilt når yuzu lukkes.</translation>
</message>
</context>
<context>
@@ -698,78 +767,78 @@ p, li { white-space: pre-wrap; }
<translation>yuzu Konfigurasjon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Lyd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Feilsøk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Filsystem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Generelt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Grafikk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Hurtigtaster</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Kontrollere</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Profiler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
- <translation type="unfinished"/>
+ <translation>Nettverk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Spill Liste</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Nett</translation>
</message>
@@ -931,27 +1000,27 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/configuration/configure_general.ui" line="50"/>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="57"/>
<source>Use global framerate cap</source>
- <translation type="unfinished"/>
+ <translation>Bruk global bildefrekvensgrense</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="62"/>
<source>Set framerate cap:</source>
- <translation type="unfinished"/>
+ <translation>Sett bildefrekvensgrense:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="70"/>
<source>Requires the use of the FPS Limiter Toggle hotkey to take effect.</source>
- <translation type="unfinished"/>
+ <translation>Krever bruk av FPS-bregrensningshurtigstasten for å tre i kraft.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="73"/>
<source>Framerate Cap</source>
- <translation type="unfinished"/>
+ <translation>Bildefrekvensgrense</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
<source>x</source>
- <translation type="unfinished"/>
+ <translation>x</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="116"/>
@@ -966,12 +1035,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="141"/>
<source>Multicore CPU Emulation</source>
- <translation type="unfinished"/>
+ <translation>Fjerkjernes prosessoremulering</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="148"/>
<source>Extended memory layout (6GB DRAM)</source>
- <translation type="unfinished"/>
+ <translation>Utvidet minneutforming (6GB DRAM)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="155"/>
@@ -981,17 +1050,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="162"/>
<source>Prompt for user on game boot</source>
- <translation type="unfinished"/>
+ <translation>Spør om bruker når et spill starter</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="169"/>
<source>Pause emulation when in background</source>
- <translation>Pause emulasjon i bakgrunnen</translation>
+ <translation>Paus emulering når yuzu kjører i bakgrunnen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="176"/>
<source>Mute audio when in background</source>
- <translation type="unfinished"/>
+ <translation>Demp lyden når yuzu kjører i bakgrunnen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="183"/>
@@ -1001,17 +1070,17 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="225"/>
<source>Reset All Settings</source>
- <translation type="unfinished"/>
+ <translation>Tilbakestill alle innstillinger</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
- <translation type="unfinished"/>
+ <translation>Dette tilbakestiller alle innstillinger og fjerner alle spillinnstillinger. Spillmapper, profiler og inndataprofiler blir ikke slettet. Fortsett?</translation>
</message>
</context>
<context>
@@ -1034,7 +1103,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="64"/>
<source>Shader Backend:</source>
- <translation type="unfinished"/>
+ <translation>Shader-backend:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="92"/>
@@ -1059,47 +1128,47 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="169"/>
<source>Use asynchronous GPU emulation</source>
- <translation type="unfinished"/>
+ <translation>Bruk asynkron GPU-emulering</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="176"/>
<source>Accelerate ASTC texture decoding</source>
- <translation type="unfinished"/>
+ <translation>Akselerer ASTC-teksturdekoding</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="198"/>
<source>NVDEC emulation:</source>
- <translation type="unfinished"/>
+ <translation>NVDEC-emulering:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="206"/>
<source>No Video Output</source>
- <translation type="unfinished"/>
+ <translation>Ingen videoutdata</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="211"/>
<source>CPU Video Decoding</source>
- <translation type="unfinished"/>
+ <translation>Prosessorvideodekoding</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="216"/>
<source>GPU Video Decoding (Default)</source>
- <translation type="unfinished"/>
+ <translation>GPU-videodekoding (standard)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="242"/>
<source>Fullscreen Mode:</source>
- <translation type="unfinished"/>
+ <translation>Fullskjermmodus:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="250"/>
<source>Borderless Windowed</source>
- <translation type="unfinished"/>
+ <translation>Rammeløst vindu</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="255"/>
<source>Exclusive Fullscreen</source>
- <translation type="unfinished"/>
+ <translation>Eksklusiv fullskjerm</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="281"/>
@@ -1129,47 +1198,47 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="330"/>
<source>Resolution:</source>
- <translation type="unfinished"/>
+ <translation>Oppløsning:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="338"/>
<source>0.5X (360p/540p) [EXPERIMENTAL]</source>
- <translation type="unfinished"/>
+ <translation>0.5X (360p/540p) [EKSPERIMENTELL]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="343"/>
<source>0.75X (540p/810p) [EXPERIMENTAL]</source>
- <translation type="unfinished"/>
+ <translation>0.75X (540p/810p) [EKSPERIMENTELL]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="348"/>
<source>1X (720p/1080p)</source>
- <translation type="unfinished"/>
+ <translation>1X (720p/1080p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="353"/>
<source>2X (1440p/2160p)</source>
- <translation type="unfinished"/>
+ <translation>2X (1440p/2160p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="358"/>
<source>3X (2160p/3240p)</source>
- <translation type="unfinished"/>
+ <translation>3X (2160p/3240p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="363"/>
<source>4X (2880p/4320p)</source>
- <translation type="unfinished"/>
+ <translation>4X (2880p/4320p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="368"/>
<source>5X (3600p/5400p)</source>
- <translation type="unfinished"/>
+ <translation>5X (3600p/5400p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="373"/>
<source>6X (4320p/6480p)</source>
- <translation type="unfinished"/>
+ <translation>6X (4320p/6480p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="399"/>
@@ -1179,37 +1248,37 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="407"/>
<source>Nearest Neighbor</source>
- <translation type="unfinished"/>
+ <translation>Nærmeste nabo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="412"/>
<source>Bilinear</source>
- <translation type="unfinished"/>
+ <translation>Bilineær</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="417"/>
<source>Bicubic</source>
- <translation type="unfinished"/>
+ <translation>Bikubisk</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="422"/>
<source>Gaussian</source>
- <translation type="unfinished"/>
+ <translation>Gaussisk</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="427"/>
<source>ScaleForce</source>
- <translation type="unfinished"/>
+ <translation>ScaleForce</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="432"/>
<source>AMD FidelityFX™️ Super Resolution (Vulkan Only)</source>
- <translation type="unfinished"/>
+ <translation>AMD FidelityFX™️ Super Resolution (kun med Vulkan)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="458"/>
<source>Anti-Aliasing Method:</source>
- <translation type="unfinished"/>
+ <translation>Anti-aliasing–metode:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="466"/>
@@ -1219,13 +1288,13 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="471"/>
<source>FXAA</source>
- <translation type="unfinished"/>
+ <translation>FXAA</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="506"/>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="516"/>
<source>Use global background color</source>
- <translation type="unfinished"/>
+ <translation>Bruk global bakgrunnsfarge</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="521"/>
@@ -1238,9 +1307,9 @@ p, li { white-space: pre-wrap; }
<translation>Bakgrunnsfarge:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
- <translation type="unfinished"/>
+ <translation>GLASM (assembly-shader-e, kun med NVIDIA)</translation>
</message>
</context>
<context>
@@ -1278,12 +1347,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="85"/>
<source>Enables asynchronous shader compilation, which may reduce shader stutter. This feature is experimental.</source>
- <translation type="unfinished"/>
+ <translation>Slår på asynkron shader-kompilering, som kan redusere shader-hakking. Denne funksjonaliteten er eksperimentell.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="88"/>
<source>Use asynchronous shader building (Hack)</source>
- <translation type="unfinished"/>
+ <translation>Bruk asynkron shader-bygging (hack)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="95"/>
@@ -1298,12 +1367,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="120"/>
<source>Anisotropic Filtering:</source>
- <translation type="unfinished"/>
+ <translation>Anisotropisk filtrering:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="128"/>
<source>Automatic</source>
- <translation type="unfinished"/>
+ <translation>Automatisk</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="133"/>
@@ -1371,14 +1440,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="94"/>
<source>Controller Hotkey</source>
- <translation type="unfinished"/>
+ <translation>Kontrollerhurtigtast</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="124"/>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="150"/>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="365"/>
<source>Conflicting Key Sequence</source>
- <translation type="unfinished"/>
+ <translation>Mostridende tastesekvens</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="125"/>
@@ -1389,7 +1458,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="144"/>
<source>Home+%1</source>
- <translation type="unfinished"/>
+ <translation>Hjem+%1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="158"/>
@@ -1399,7 +1468,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="228"/>
<source>Invalid</source>
- <translation type="unfinished"/>
+ <translation>Ugyldig</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="329"/>
@@ -1414,12 +1483,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="351"/>
<source>Conflicting Button Sequence</source>
- <translation type="unfinished"/>
+ <translation>Motstridende knappesekvens</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="352"/>
<source>The default button sequence is already assigned to: %1</source>
- <translation type="unfinished"/>
+ <translation>Standardknappesekvensen er allerede tildelt til: %1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="366"/>
@@ -1496,12 +1565,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input.ui" line="159"/>
<source>Docked</source>
- <translation type="unfinished"/>
+ <translation>Dokket</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input.ui" line="169"/>
<source>Undocked</source>
- <translation type="unfinished"/>
+ <translation>Udokket</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input.ui" line="179"/>
@@ -1683,7 +1752,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2533"/>
<source>Emulated Devices</source>
- <translation type="unfinished"/>
+ <translation>Emulerte enheter</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2545"/>
@@ -1724,37 +1793,37 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2624"/>
<source>Emulate Analog with Keyboard Input</source>
- <translation type="unfinished"/>
+ <translation>Emuler analog med tastaturinndata</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2631"/>
<source>Requires restarting yuzu</source>
- <translation type="unfinished"/>
+ <translation>Krever omstart av yuzu</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2640"/>
<source>Enable XInput 8 player support (disables web applet)</source>
- <translation type="unfinished"/>
+ <translation>Slå på XInput 8-spillerstøtte (slår av web-applet)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2653"/>
<source>Enable UDP controllers (not needed for motion)</source>
- <translation type="unfinished"/>
+ <translation>Slå på UDP-kontrollere (ikke nødvendig for bevegelse)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2666"/>
<source>Controller navigation</source>
- <translation type="unfinished"/>
+ <translation>Kontrollernavigasjon</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2679"/>
<source>Enable mouse panning</source>
- <translation type="unfinished"/>
+ <translation>Slå på musepanorering</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2686"/>
<source>Mouse sensitivity</source>
- <translation type="unfinished"/>
+ <translation>Musesensitivitet</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2692"/>
@@ -1782,7 +1851,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="100"/>
<source>Input Device</source>
- <translation type="unfinished"/>
+ <translation>Inndataenhet</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="156"/>
@@ -1806,7 +1875,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Venstre Pinne</translation>
</message>
@@ -1900,14 +1969,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1926,7 +1995,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Pluss</translation>
</message>
@@ -1939,15 +2008,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -1966,12 +2035,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2030"/>
<source>Motion 1</source>
- <translation type="unfinished"/>
+ <translation>Bevegelse 1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2079"/>
<source>Motion 2</source>
- <translation type="unfinished"/>
+ <translation>Bevegelse 2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2170"/>
@@ -2004,231 +2073,232 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Høyre Pinne</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Fjern</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[ikke satt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
- <translation type="unfinished"/>
+ <translation>Veksle knapp</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
- <translation type="unfinished"/>
+ <translation>Inverter knapp</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
- <translation type="unfinished"/>
+ <translation>Inverter akse</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
- <translation type="unfinished"/>
+ <translation>Set grense</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
- <translation type="unfinished"/>
+ <translation>Velg en verdi mellom 0% og 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
- <translation type="unfinished"/>
+ <translation>Etter du har trykker på OK, flytt først stikken horisontalt, og så vertikalt.
+For å invertere aksene, flytt først stikken vertikalt, og så horistonalt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
- <translation type="unfinished"/>
+ <translation>Senterakse</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Dødsone: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Modifikatorområde: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro-Kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Doble Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Venstre Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Høyre Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Håndholdt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
- <translation type="unfinished"/>
+ <translation>GameCube-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
- <translation type="unfinished"/>
+ <translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
- <translation type="unfinished"/>
+ <translation>NES-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
- <translation type="unfinished"/>
+ <translation>SNES-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
- <translation type="unfinished"/>
+ <translation>N64-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
- <translation type="unfinished"/>
+ <translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
- <translation type="unfinished"/>
+ <translation>Start / paus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
- <translation type="unfinished"/>
+ <translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
- <translation type="unfinished"/>
+ <translation>Kontrollstikke</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
- <translation type="unfinished"/>
+ <translation>C-stikke</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
- <translation type="unfinished"/>
+ <translation>Rist!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[venter]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Ny Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
- <translation type="unfinished"/>
+ <translation>Skriv inn et profilnavn:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
- <translation type="unfinished"/>
+ <translation>Lag inndataprofil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
- <translation type="unfinished"/>
+ <translation>Det oppgitte profilenavnet er ugyldig!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
- <translation type="unfinished"/>
+ <translation>Klarte ikke lage inndataprofil &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
- <translation type="unfinished"/>
+ <translation>Slett inndataprofil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
- <translation type="unfinished"/>
+ <translation>Klarte ikke slette inndataprofil &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
- <translation type="unfinished"/>
+ <translation>Last inn inndataprofil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
- <translation type="unfinished"/>
+ <translation>Klarte ikke laste inn inndataprofil &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
- <translation type="unfinished"/>
+ <translation>Lagre inndataprofil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
- <translation type="unfinished"/>
+ <translation>Klarte ikke lagre inndataprofil &quot;%1&quot;</translation>
</message>
</context>
<context>
@@ -2236,7 +2306,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_input_profile_dialog.ui" line="14"/>
<source>Create Input Profile</source>
- <translation type="unfinished"/>
+ <translation>Lag inndataprofil</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_profile_dialog.ui" line="40"/>
@@ -2264,7 +2334,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="23"/>
<source>UDP Calibration:</source>
- <translation type="unfinished"/>
+ <translation>UDP-kalibrasjon</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="30"/>
@@ -2274,7 +2344,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Konfigurer</translation>
</message>
@@ -2310,97 +2380,97 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Test</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="214"/>
<source>Add Server</source>
- <translation type="unfinished"/>
+ <translation>Legg til tjener</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="247"/>
<source>Remove Server</source>
- <translation type="unfinished"/>
+ <translation>Fjern tjener</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Lær Mer&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
- <translation type="unfinished"/>
+ <translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
- <translation type="unfinished"/>
+ <translation>Portnummeret har ugyldige tegn</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
- <translation type="unfinished"/>
+ <translation>Porten må være i intervallet 0 til 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
- <translation type="unfinished"/>
+ <translation>IP-adressen er ugyldig</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
- <translation type="unfinished"/>
+ <translation>Denne UDP-tjeneren eksisterer allerede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
- <translation type="unfinished"/>
+ <translation>Kan ikke legge til mer enn 8 tjenere</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Testing</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Konfigurering</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Test Vellykket</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Mottatt data fra serveren vellykket.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Test Feilet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Kunne ikke motta gyldig data fra serveren.&lt;br&gt;Vennligst bekreft at serveren er satt opp riktig og at adressen og porten er riktige.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>UDP-Test eller kalibrasjonskonfigurering er i fremgang.&lt;br&gt;Vennligst vent for dem til å bli ferdig.</translation>
</message>
@@ -2415,7 +2485,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="17"/>
<source>Network</source>
- <translation type="unfinished"/>
+ <translation>Nettverk</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="25"/>
@@ -2425,10 +2495,10 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="34"/>
<source>Network Interface</source>
- <translation type="unfinished"/>
+ <translation>Nettverksgrensesnitt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Ingen</translation>
</message>
@@ -2481,47 +2551,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Utvikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Tillegg</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Generelt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Grafikk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Avn. Grafikk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Lyd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Egenskaper</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Bruk global konfigurasjon (%1)</translation>
</message>
@@ -2539,12 +2609,12 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Tillegg</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Oppdateringsnavn</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Versjon</translation>
</message>
@@ -2602,7 +2672,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Profil-administrering er bare tilgjengelig når ingen spill kjører.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2610,94 +2680,94 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Skriv inn Brukernavn</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Brukere</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Tast inn et brukernavn for den nye brukeren:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Skriv inn et nytt brukernavn</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Bekreft Sletting</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Du er i ferd med å slette brukeren med navnet &quot;%1&quot;. Er du sikker?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Sett Bruker Bilde</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>JPEG Bilder (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Feil ved sletting av bilde</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>En feil oppstod under overskrivelse av det forrige bildet på: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Feil ved sletting av fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Kunne ikke slette eksisterende fil: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Feil under opprettelse av profilbildemappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Kunne ikke opprette mappe %1 for å lagre profilbilder.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Feil under kopiering av profilbilde</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Kunne ikke kopiere bilde fra %1 til %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
- <translation type="unfinished"/>
+ <translation>Feil under endring av størrelse på brukerbilde</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
- <translation type="unfinished"/>
+ <translation>Klarte ikke endre bildestørrelse</translation>
</message>
</context>
<context>
@@ -3081,7 +3151,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="409"/>
<source>Brazilian Portuguese (português do Brasil)</source>
- <translation type="unfinished"/>
+ <translation>Brasiliansk portugisisk (português do Brasil)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="417"/>
@@ -3139,17 +3209,17 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Systeminnstillinger er bare tilgjengelige når ingen spill kjører.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Dette vil erstatte din nåværende virtuelle Switch med en ny en. Din nåværende virtuelle Switch vil ikke kunne bli gjenopprettet. Dette kan ha uventede effekter i spill. Dette kan feile om du bruker en utdatert lagret-spill konfigurasjon. Fortsette? </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Advarsel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>Konsoll-ID: 0x%1</translation>
</message>
@@ -3159,32 +3229,32 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="11"/>
<source>TAS</source>
- <translation type="unfinished"/>
+ <translation>TAS</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="17"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Reads controller input from scripts in the same format as TAS-nx scripts.&lt;br/&gt;For a more detailed explanation, please consult the &lt;a href=&quot;https://yuzu-emu.org/help/feature/tas/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;help page&lt;/span&gt;&lt;/a&gt; on the yuzu website.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Leser kontrollerinndata fra script i samme format som TAS-nx–script.&lt;br/&gt;For en mer detaljert beskrivelse, se &lt;a href=&quot;https://yuzu-emu.org/help/feature/tas/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;hjelpesiden&lt;/span&gt;&lt;/a&gt; på yuzus hjemmeside.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="24"/>
<source>To check which hotkeys control the playback/recording, please refer to the Hotkey settings (Configure -&gt; General -&gt; Hotkeys).</source>
- <translation type="unfinished"/>
+ <translation>For å sjekke hvilke hurtigtaster som styrer avspilling/innspilling, se hurtigtastinnstillingene (Konfigurer -&gt; Generelt -&gt; Hurtigtaster).</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="34"/>
<source>WARNING: This is an experimental feature.&lt;br/&gt;It will not play back scripts frame perfectly with the current, imperfect syncing method.</source>
- <translation type="unfinished"/>
+ <translation>ADVARSEL: Dette er eksperimentell funksjonalitet.&lt;br/&gt;Script spilles ikke tilbake med perfekt bildetiming med den nåværende, ikke-perfekte synkemetoden.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="51"/>
<source>Settings</source>
- <translation type="unfinished"/>
+ <translation>Innstillinger</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="57"/>
<source>Enable TAS features</source>
- <translation type="unfinished"/>
+ <translation>Slå på TAS-funksjonalitet</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="64"/>
@@ -3194,12 +3264,12 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="74"/>
<source>Pause execution during loads</source>
- <translation type="unfinished"/>
+ <translation>Sett kjøring på vent under lasting</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="88"/>
<source>Script Directory</source>
- <translation type="unfinished"/>
+ <translation>Skriptmappe</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="94"/>
@@ -3217,12 +3287,12 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_tas.cpp" line="20"/>
<source>TAS Configuration</source>
- <translation type="unfinished"/>
+ <translation>TAS-konfigurasjon</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.cpp" line="51"/>
<source>Select TAS Load Directory...</source>
- <translation type="unfinished"/>
+ <translation>Velg TAS-lastemappe...</translation>
</message>
</context>
<context>
@@ -3256,7 +3326,8 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<location filename="../../src/yuzu/configuration/configure_touch_from_button.ui" line="92"/>
<source>Click the bottom area to add a point, then press a button to bind.
Drag points to change position, or double-click table cells to edit values.</source>
- <translation type="unfinished"/>
+ <translation>Klikk på den nedre området for å legge til en punkt, og trykk så på en knapp for å binde det.
+Dra punkter for å endre posisjon, eller dobbelttrykk på tabellfelter for å redigere verdier.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.ui" line="116"/>
@@ -3264,54 +3335,54 @@ Drag points to change position, or double-click table cells to edit values.</sou
<translation>Slett Punkt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Knapp</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Ny Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Skriv inn navnet til den nye profilen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Slett Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Slett profil %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Endre Navn på Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Nytt navn:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[trykk knapp]</translation>
</message>
@@ -3366,37 +3437,37 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="21"/>
<source>Small (32x32)</source>
- <translation type="unfinished"/>
+ <translation>Liten (32x32)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="22"/>
<source>Standard (64x64)</source>
- <translation type="unfinished"/>
+ <translation>Standard (64x64)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="23"/>
<source>Large (128x128)</source>
- <translation type="unfinished"/>
+ <translation>Stor (128x128)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="24"/>
<source>Full Size (256x256)</source>
- <translation type="unfinished"/>
+ <translation>Full størrelse (256x256)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="29"/>
<source>Small (24x24)</source>
- <translation type="unfinished"/>
+ <translation>Liten (24x24)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="30"/>
<source>Standard (48x48)</source>
- <translation type="unfinished"/>
+ <translation>Standard (48x48)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="31"/>
<source>Large (72x72)</source>
- <translation type="unfinished"/>
+ <translation>Stor (72x72)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="36"/>
@@ -3406,7 +3477,7 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="37"/>
<source>Filetype</source>
- <translation type="unfinished"/>
+ <translation>Filtype</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="38"/>
@@ -3416,7 +3487,7 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/configuration/configure_ui.cpp" line="39"/>
<source>Title Name</source>
- <translation type="unfinished"/>
+ <translation>Tittelnavn</translation>
</message>
</context>
<context>
@@ -3459,17 +3530,17 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/configuration/configure_ui.ui" line="82"/>
<source>Show Add-Ons Column</source>
- <translation type="unfinished"/>
+ <translation>Vis tilleggskolonnen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.ui" line="91"/>
<source>Game Icon Size:</source>
- <translation type="unfinished"/>
+ <translation>Spillikonstørrelse:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.ui" line="105"/>
<source>Folder Icon Size:</source>
- <translation type="unfinished"/>
+ <translation>Mappeikonstørrelse:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.ui" line="119"/>
@@ -3489,7 +3560,7 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/configuration/configure_ui.ui" line="158"/>
<source>Ask Where To Save Screenshots (Windows Only)</source>
- <translation type="unfinished"/>
+ <translation>Spør om hvor skjermbilder skal lagres (kun for Windows)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ui.ui" line="167"/>
@@ -3522,7 +3593,7 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="14"/>
<source>Configure Vibration</source>
- <translation type="unfinished"/>
+ <translation>Konfigurer vibrering</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="23"/>
@@ -3589,12 +3660,12 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="503"/>
<source>Settings</source>
- <translation type="unfinished"/>
+ <translation>Innstillinger</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="509"/>
<source>Enable Accurate Vibration</source>
- <translation type="unfinished"/>
+ <translation>Slå på nøyaktig vibrering</translation>
</message>
</context>
<context>
@@ -3738,7 +3809,7 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/debugger/controller.cpp" line="21"/>
<source>Controller P1</source>
- <translation type="unfinished"/>
+ <translation>Kontroller P1</translation>
</message>
<message>
<location filename="../../src/yuzu/debugger/controller.cpp" line="60"/>
@@ -3749,892 +3820,899 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonym data blir samlet inn&lt;/a&gt;for å hjelpe til med å forbedre yuzu.&lt;br/&gt;&lt;br/&gt;Vil du dele din bruksdata med oss?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetri</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
- <translation type="unfinished"/>
+ <translation>Laster web-applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
- <translation type="unfinished"/>
+ <translation>Slå av web-applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
- <translation type="unfinished"/>
+ <translation>Antall shader-e som bygges for øyeblikket</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
- <translation type="unfinished"/>
+ <translation>Den valgte oppløsningsskaleringsfaktoren.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Nåværende emuleringshastighet. Verdier høyere eller lavere en 100% indikerer at emuleringen kjører raskere eller tregere enn en Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Hvor mange bilder per sekund spiller viser. Dette vil variere fra spill til spill og scene til scene.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tid det tar for å emulere et Switch bilde. Teller ikke med bildebegrensing eller v-sync. For full-hastighet emulering burde dette være 16.67 ms. på det høyeste.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
- <translation type="unfinished"/>
+ <translation>DOKK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
- <translation type="unfinished"/>
+ <translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
- <translation type="unfinished"/>
+ <translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
- <translation>&amp;Pause</translation>
+ <translation>&amp;Paus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation type="unfinished"/>
+ <translation>Et spill kjører i yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Advarsel: Utdatert Spillformat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Du bruker en dekonstruert ROM-mappe for dette spillet, som er et utdatert format som har blitt erstattet av andre formater som NCA, NAX, XCI, eller NSP. Dekonstruerte ROM-mapper mangler ikoner, metadata, og oppdateringsstøtte.&lt;br&gt;&lt;br&gt;For en forklaring på diverse Switch-formater som yuzu støtter,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;sjekk vår wiki&lt;/a&gt;. Denne meldingen vil ikke bli vist igjen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Feil under innlasting av ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>Dette ROM-formatet er ikke støttet.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>En feil oppstod under initialisering av videokjernen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
- <translation type="unfinished"/>
+ <translation>yuzu har oppdaget en feil under kjøring av videokjernen. Dette er vanligvis forårsaket av utdaterte GPU-drivere, inkludert for integrert grafikk. Vennligst sjekk loggen for flere detaljer. For mer informasjon om å finne loggen, besøk følgende side: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Uploadd the Log File&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
- <translation type="unfinished"/>
+ <translation>Feil under lasting av ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>En ukjent feil oppstod. Se loggen for flere detaljer.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
- <translation type="unfinished"/>
+ <translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
- <translation type="unfinished"/>
+ <translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
- <translation type="unfinished"/>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Lagre Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Mod Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Feil Under Åpning av %1 Mappen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Mappen eksisterer ikke!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Innhold</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Oppdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
- <translation type="unfinished"/>
+ <translation>Fjern oppføring</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Fjern Installert Spill %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
- <translation type="unfinished"/>
+ <translation>Fjerning lykkes</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Feil Under Fjerning av %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Grunnspillet er ikke installert i NAND og kan ikke bli fjernet.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Fjernet vellykket den installerte oppdateringen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Det er ingen oppdatering installert for denne tittelen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Det er ingen DLC installert for denne tittelen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Fjernet vellykket %1 installerte DLC-er.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Fjern Tilpasset Spillkonfigurasjon?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Fjern Fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
- <translation>Feil Under Fjerning Av Overførbar Shader Cache</translation>
+ <translation>Feil under fjerning av overførbar shader cache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
- <translation>Fjernet vellykket den overførbare shader cachen.</translation>
+ <translation>Lykkes i å fjerne den overførbare shader cachen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Feil under fjerning av den overførbare shader cachen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Feil Under Fjerning Av Tilpasset Konfigurasjon</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>En tilpasset konfigurasjon for denne tittelen finnes ikke.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Fjernet vellykket den tilpassede spillkonfigurasjonen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Feil under fjerning av den tilpassede spillkonfigurasjonen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>Utvinning av RomFS Feilet!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Det oppstod en feil under kopiering av RomFS filene eller så kansellerte brukeren operasjonen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Fullstendig</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Skjelett</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Velg RomFS Dump Modus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Velg hvordan du vil dumpe RomFS.&lt;br&gt;Fullstendig vil kopiere alle filene til en ny mappe mens &lt;br&gt;skjelett vil bare skape mappestrukturen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Utvinner RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Avbryt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS Utpakking lyktes!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>Operasjonen fullført vellykket.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Feil ved åpning av %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Velg Mappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Egenskaper</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Spillets egenskaper kunne ikke bli lastet inn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch Kjørbar Fil (%1);;Alle Filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Last inn Fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Åpne Utpakket ROM Mappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Ugyldig Mappe Valgt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Mappen du valgte inneholder ikke en &apos;main&apos; fil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Installerbar Switch-Fil (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xcI)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Installer Filer</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n fil gjenstår</numerusform><numerusform>%n filer gjenstår</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Installerer fil &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Insallasjonsresultater</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n fil ble nylig installert
+</numerusform><numerusform>%n filer ble nylig installert
+</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n fil ble overskrevet
+</numerusform><numerusform>%n filer ble overskrevet
+</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n fil ble ikke installert
+</numerusform><numerusform>%n filer ble ikke installert
+</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Systemapplikasjon</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Systemarkiv</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Systemapplikasjonsoppdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Firmware Pakke (Type A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Firmware-Pakke (Type B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Spill</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Spilloppdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Spill tilleggspakke</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Delta Tittel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Velg NCA Installasjonstype...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Vennligst velg typen tittel du vil installere denne NCA-en som:
(I de fleste tilfellene, standarden &apos;Spill&apos; fungerer.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Feil under Installasjon</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Titteltypen du valgte for NCA-en er ugyldig.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Fil ikke funnet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Filen &quot;%1&quot; ikke funnet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Mangler yuzu Bruker</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>For å sende inn et testtilfelle for spillkompatibilitet, må du linke yuzu-brukeren din.&lt;br&gt;&lt;br/&gt;For å linke yuzu-brukeren din, gå til Emulasjon &amp;gt; Konfigurasjon &amp;gt; Nett.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Feil under åpning av URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Kunne ikke åpne URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
- <translation type="unfinished"/>
+ <translation>TAS-innspilling</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
- <translation type="unfinished"/>
+ <translation>Overskriv filen til spiller 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
- <translation type="unfinished"/>
+ <translation>Ugyldig konfigurasjon oppdaget</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
- <translation type="unfinished"/>
+ <translation>Håndholdt kontroller kan ikke brukes i dokket modus. Pro-kontroller vil bli valgt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
- <translation type="unfinished"/>
+ <translation>Feil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
- <translation type="unfinished"/>
+ <translation>Det kjørende spillet sjekker ikke for amiibo-er</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
- <translation type="unfinished"/>
+ <translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
- <translation type="unfinished"/>
+ <translation>Den valgte amiibo-en har blitt fjernet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo-Fil (%1);; Alle Filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Last inn Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Feil ved Åpning av Amiibo data fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Kunne ikke åpne Amiibo-fil &quot;%1&quot; for lesing.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Feil under lesing av Amiibo datafil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Kunne ikke lese all Amiibo-data. Forventet å lese minst %1 bytes, men kunne bare lese %2 bytes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Feil ved lasting av Amiibo data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Kunne ikke laste Amiibo-data.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Ta Skjermbilde</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG Bilde (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
- <translation type="unfinished"/>
+ <translation>TAS-tilstand: Kjører %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
- <translation type="unfinished"/>
+ <translation>TAS-tilstand: Spiller inn %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
- <translation type="unfinished"/>
+ <translation>TAS-tilstand: Venter %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
- <translation type="unfinished"/>
+ <translation>TAS-tilstand: Ugyldig</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
- <translation type="unfinished"/>
+ <translation>&amp;Stopp kjøring</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>Bygger: %n shader</numerusform><numerusform>Bygger: %n shader-e</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
- <translation type="unfinished"/>
+ <translation>Skala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Hastighet: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Hastighet: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
- <translation type="unfinished"/>
+ <translation>Spill: %1 FPS (ubegrenset)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Spill: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Ramme: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
- <translation type="unfinished"/>
+ <translation>GPU NORMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
- <translation type="unfinished"/>
+ <translation>GPU HØY</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
- <translation type="unfinished"/>
+ <translation>GPU EKSTREM</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
- <translation type="unfinished"/>
+ <translation>GPU FEIL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
- <translation type="unfinished"/>
+ <translation>NÆRMESTE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
- <translation type="unfinished"/>
+ <translation>BILINEÆR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
- <translation type="unfinished"/>
+ <translation>BIKUBISK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
- <translation type="unfinished"/>
+ <translation>GAUSSISK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
- <translation type="unfinished"/>
+ <translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
- <translation type="unfinished"/>
+ <translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
- <translation type="unfinished"/>
+ <translation>INGEN AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
- <translation type="unfinished"/>
+ <translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Spillet du prøver å laste krever at ekstra filer fra din Switch blir dumpet før du spiller.&lt;br/&gt;&lt;br/&gt;For mer informasjon om dumping av disse filene, vennligst se den følgende wiki-siden: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping av System-Arkiv og Shared Fonts fra en Switch-Konsoll&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Vil du gå tilbake til spillisten? Fortsetting av emulasjon kan føre til krasjing, ødelagt lagringsdata, eller andre feil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu kunne ikke finne et Switch system-arkiv. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu kunne ikke finne et Switch system-arkiv: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>System Arkiv Ikke Funnet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>System Arkiv Mangler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu kunne ikke finne Switch shared fonts. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Shared Fonts Ikke Funnet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Shared Font Mangler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Fatal Feil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu har oppdaget en fatal feil, vennligst se loggen for flere detaljer. For mer informasjon om å finne loggen, vennligst se den følgende siden: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Hvordan å Laste Opp Log-Filen&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Vil du gå tilbake til spillisten? Fortsetting av emulasjon kan føre til krasjing, ødelagt lagringsdata, eller andre feil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Fatal Feil oppstått</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Bekreft Nøkkel-Redirevasjon</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4651,37 +4729,37 @@ og eventuelt lag backups.
Dette vil slette dine autogenererte nøkkel-filer og kjøre nøkkel-derivasjonsmodulen på nytt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Mangler fuses</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- Mangler BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- Mangler BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation>- Mangler PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Derivasjonskomponenter Mangler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
- <translation type="unfinished"/>
+ <translation>Krypteringsnøkler mangler. &lt;br&gt;Vennligst følg &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzus oppstartsguide&lt;/a&gt; for å få alle nøklene, fastvaren og spillene dine.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4690,82 +4768,84 @@ Dette kan ta opp til et minutt avhengig
av systemytelsen din.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Deriverer Nøkler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Velg RomFS Dump-Mål</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Vennligst velg hvilken RomFS du vil dumpe.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Er du sikker på at du vil lukke yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Er du sikker på at du vil stoppe emulasjonen? All ulagret fremgang vil bli tapt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
- <translation type="unfinished"/>
+ <translation>Den kjørende applikasjonen har bedt yuzu om å ikke lukke.
+
+Vil du overstyre dette og lukke likevel?</translation>
</message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL ikke tilgjengelig!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu har ikke blitt kompilert med OpenGL-støtte.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Feil under initialisering av OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
- <translation type="unfinished"/>
+ <translation>Det kan hende at GPU-en din ikke støtter OpenGL, eller at du ikke har den nyeste grafikkdriveren.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
- <translation type="unfinished"/>
+ <translation>Feil under initialisering av OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
- <translation type="unfinished"/>
+ <translation>Det kan hende at GPU-en din ikke støtter OpenGL 4.6, eller at du ikke har den nyeste grafikkdriveren.&lt;br&gt;&lt;br&gt;GL-renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
- <translation type="unfinished"/>
+ <translation>Det kan hende at GPU-en din ikke støtter én eller flere nødvendige OpenGL-utvidelser. Vennligst sørg for at du har den nyeste grafikkdriveren.&lt;br&gt;&lt;br&gt;GL-renderer: &lt;br&gt;%1&lt;br&gt;&lt;br&gt;Ikke-støttede utvidelser:&lt;br&gt;%2</translation>
</message>
</context>
<context>
@@ -4798,7 +4878,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="535"/>
<source>Favorite</source>
- <translation type="unfinished"/>
+ <translation>Legg til som favoritt</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="537"/>
@@ -4925,79 +5005,79 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfekt</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Bra</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Ok</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Dårlig</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/Meny</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
- <translation type="unfinished"/>
+ <translation>Spillet er fullstendig uspillbart på grunn av store grafikk- eller lydfeil. Kan ikke komme fordi startskjermen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Vil ikke starte</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
- <translation type="unfinished"/>
+ <translation>Spillet krasjer under oppstart.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Ikke testet</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
- <translation type="unfinished"/>
+ <translation>Spillet har ikke blitt testet ennå.</translation>
</message>
</context>
<context>
@@ -5005,7 +5085,7 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="873"/>
<source>Double-click to add a new folder to the game list</source>
- <translation type="unfinished"/>
+ <translation>Dobbeltrykk for å legge til en ny mappe i spillisten</translation>
</message>
</context>
<context>
@@ -5013,7 +5093,7 @@ Screen.</source>
<message numerus="yes">
<location filename="../../src/yuzu/game_list.cpp" line="87"/>
<source>%1 of %n result(s)</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%1 of %n resultat</numerusform><numerusform>%1 of %n resultater</numerusform></translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="130"/>
@@ -5029,24 +5109,24 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
- <translation type="unfinished"/>
+ <translation>Vennligst bekreft at dette er filene du ønsker å installere.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
- <translation type="unfinished"/>
+ <translation>Installer</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
- <translation type="unfinished"/>
+ <translation>Installer filer til NAND</translation>
</message>
</context>
<context>
@@ -5055,7 +5135,8 @@ Screen.</source>
<location filename="../../src/yuzu/util/limitable_input_dialog.cpp" line="62"/>
<source>The text can't contain any of the following characters:
%1</source>
- <translation type="unfinished"/>
+ <translation>Teksten kan ikke inneholde noen av de følgende tegnene:
+%1</translation>
</message>
</context>
<context>
@@ -5068,7 +5149,7 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/loading_screen.ui" line="121"/>
<source>Loading Shaders %v out of %m</source>
- <translation type="unfinished"/>
+ <translation>Laster inn shadere %v / %m</translation>
</message>
<message>
<location filename="../../src/yuzu/loading_screen.ui" line="135"/>
@@ -5076,22 +5157,22 @@ Screen.</source>
<translation>Estimert Tid 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Laster inn...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Laster inn Shadere %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Starter...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Estimert Tid %1</translation>
</message>
@@ -5111,7 +5192,7 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/main.ui" line="48"/>
<source>&amp;Recent Files</source>
- <translation type="unfinished"/>
+ <translation>Nylige file&amp;r</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="67"/>
@@ -5126,7 +5207,7 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/main.ui" line="82"/>
<source>&amp;Reset Window Size</source>
- <translation type="unfinished"/>
+ <translation>Nullstill vindusstø&amp;rrelse</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="87"/>
@@ -5136,42 +5217,42 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/main.ui" line="92"/>
<source>Reset Window Size to &amp;720p</source>
- <translation type="unfinished"/>
+ <translation>Tilbakestill vindusstørrelse til &amp;720p</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="95"/>
<source>Reset Window Size to 720p</source>
- <translation type="unfinished"/>
+ <translation>Tilbakestill vindusstørrelse til 720p</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="100"/>
<source>Reset Window Size to &amp;900p</source>
- <translation type="unfinished"/>
+ <translation>Tilbakestill vindusstørrelse til &amp;900p</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="103"/>
<source>Reset Window Size to 900p</source>
- <translation type="unfinished"/>
+ <translation>Tilbakestill vindusstørrelse til 900p</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="108"/>
<source>Reset Window Size to &amp;1080p</source>
- <translation type="unfinished"/>
+ <translation>Tilbakestill vindusstørrelse til &amp;1080p</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="111"/>
<source>Reset Window Size to 1080p</source>
- <translation type="unfinished"/>
+ <translation>Tilbakestill vindusstørrelse til 1080p</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="125"/>
<source>&amp;Tools</source>
- <translation type="unfinished"/>
+ <translation>Verk&amp;tøy</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="129"/>
<source>&amp;TAS</source>
- <translation type="unfinished"/>
+ <translation>&amp;TAS</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="144"/>
@@ -5181,7 +5262,7 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/main.ui" line="164"/>
<source>&amp;Install Files to NAND...</source>
- <translation type="unfinished"/>
+ <translation>&amp;Installer filer til NAND...</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="169"/>
@@ -5201,7 +5282,7 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/main.ui" line="187"/>
<source>&amp;Pause</source>
- <translation>&amp;Pause</translation>
+ <translation>&amp;Paus</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="195"/>
@@ -5211,7 +5292,7 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/main.ui" line="200"/>
<source>&amp;Reinitialize keys...</source>
- <translation type="unfinished"/>
+ <translation>&amp;Reinitialiser nøkler...</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="205"/>
@@ -5226,7 +5307,7 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/main.ui" line="218"/>
<source>Con&amp;figure...</source>
- <translation type="unfinished"/>
+ <translation>Kon&amp;figurer...</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="226"/>
@@ -5236,22 +5317,22 @@ Screen.</source>
<message>
<location filename="../../src/yuzu/main.ui" line="234"/>
<source>Show &amp;Filter Bar</source>
- <translation type="unfinished"/>
+ <translation>Vis &amp;filterlinje</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="242"/>
<source>Show &amp;Status Bar</source>
- <translation type="unfinished"/>
+ <translation>Vis &amp;statuslinje</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="245"/>
<source>Show Status Bar</source>
- <translation type="unfinished"/>
+ <translation>Vis statuslinje</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="253"/>
<source>F&amp;ullscreen</source>
- <translation type="unfinished"/>
+ <translation>F&amp;ullskjerm</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="261"/>
@@ -5353,7 +5434,11 @@ Screen.</source>
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:18pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:18pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
</context>
<context>
@@ -5361,290 +5446,290 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player_widget.cpp" line="1576"/>
<source>START/PAUSE</source>
- <translation type="unfinished"/>
+ <translation>START/PAUS</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Installerte SD-titler</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Installerte NAND-titler</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>System Titler</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Legg til ny spillmappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
- <translation type="unfinished"/>
+ <translation>Favoritter</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[ikke satt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Hatt %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Akse %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Knapp %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[ukjent]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Venstre</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Høyre</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Ned</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Opp</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
- <translation type="unfinished"/>
+ <translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
- <translation type="unfinished"/>
+ <translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
- <translation type="unfinished"/>
+ <translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
- <translation type="unfinished"/>
+ <translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
- <translation type="unfinished"/>
+ <translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
- <translation type="unfinished"/>
+ <translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
- <translation type="unfinished"/>
+ <translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
- <translation type="unfinished"/>
+ <translation>Sirkel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
- <translation type="unfinished"/>
+ <translation>Kryss</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
- <translation type="unfinished"/>
+ <translation>Firkant</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
- <translation type="unfinished"/>
+ <translation>Trekant</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
- <translation type="unfinished"/>
+ <translation>Del</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
- <translation type="unfinished"/>
+ <translation>Instillinger</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Hjem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Touch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
- <translation type="unfinished"/>
+ <translation>Hjul</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
- <translation type="unfinished"/>
+ <translation>Bakover</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
- <translation type="unfinished"/>
+ <translation>Fremover</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
- <translation type="unfinished"/>
+ <translation>Ekstra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
- <translation type="unfinished"/>
+ <translation>[udefinert]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
- <translation type="unfinished"/>
+ <translation>%1%2%3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
- <translation type="unfinished"/>
+ <translation>[ugyldig]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
- <translation type="unfinished"/>
+ <translation>%1%2Akse %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
- <translation type="unfinished"/>
+ <translation>%1%2Akse %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
- <translation type="unfinished"/>
+ <translation>%1%2Bevegelse %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
- <translation type="unfinished"/>
+ <translation>%1%2Knapp %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[ubrukt]</translation>
</message>
@@ -5659,22 +5744,22 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="129"/>
<source>Supported Controller Types:</source>
- <translation type="unfinished"/>
+ <translation>Støttede kontrollertyper:</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="282"/>
<source>Players:</source>
- <translation type="unfinished"/>
+ <translation>Spillere:</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="300"/>
<source>1 - 8</source>
- <translation type="unfinished"/>
+ <translation>1 - 8</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="418"/>
<source>P4</source>
- <translation type="unfinished"/>
+ <translation>P4</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="514"/>
@@ -5685,7 +5770,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro-Kontroller</translation>
</message>
@@ -5698,7 +5783,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Doble Joycons</translation>
</message>
@@ -5711,7 +5796,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Venstre Joycon</translation>
</message>
@@ -5724,7 +5809,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Høyre Joycon</translation>
</message>
@@ -5738,48 +5823,48 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1881"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2078"/>
<source>Use Current Config</source>
- <translation type="unfinished"/>
+ <translation>Bruk nåværende konfigurasjon</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="615"/>
<source>P2</source>
- <translation type="unfinished"/>
+ <translation>P2</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="812"/>
<source>P1</source>
- <translation type="unfinished"/>
+ <translation>P1</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Håndholdt</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1126"/>
<source>P3</source>
- <translation type="unfinished"/>
+ <translation>P3</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1363"/>
<source>P7</source>
- <translation type="unfinished"/>
+ <translation>P7</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1560"/>
<source>P8</source>
- <translation type="unfinished"/>
+ <translation>P8</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1757"/>
<source>P5</source>
- <translation type="unfinished"/>
+ <translation>P5</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1958"/>
<source>P6</source>
- <translation type="unfinished"/>
+ <translation>P6</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2272"/>
@@ -5789,12 +5874,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2293"/>
<source>Docked</source>
- <translation type="unfinished"/>
+ <translation>Dokket</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2303"/>
<source>Undocked</source>
- <translation type="unfinished"/>
+ <translation>Udokket</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2313"/>
@@ -5820,7 +5905,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2432"/>
<source>Create</source>
- <translation type="unfinished"/>
+ <translation>Lag</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2467"/>
@@ -5873,34 +5958,34 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
- <translation type="unfinished"/>
+ <translation>GameCube-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
- <translation type="unfinished"/>
+ <translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
- <translation type="unfinished"/>
+ <translation>NES-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
- <translation type="unfinished"/>
+ <translation>SNES-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
- <translation type="unfinished"/>
+ <translation>N64-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
- <translation type="unfinished"/>
+ <translation>Sega Genesis</translation>
</message>
</context>
<context>
@@ -5910,13 +5995,14 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_error.cpp" line="34"/>
<location filename="../../src/yuzu/applets/qt_error.cpp" line="49"/>
<source>Error Code: %1-%2 (0x%3)</source>
- <translation type="unfinished"/>
+ <translation>Feilkode: %1-%2 (0x%3)</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_error.cpp" line="25"/>
<source>An error has occurred.
Please try again or contact the developer of the software.</source>
- <translation type="unfinished"/>
+ <translation>En feil har oppstått.
+Vennligst prøv igjen eller kontakt programmets utvikler.</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_error.cpp" line="38"/>
@@ -5931,13 +6017,17 @@ Please try again or contact the developer of the software.</source>
%1
%2</source>
- <translation type="unfinished"/>
+ <translation>En feil har oppstått.
+
+%1
+
+%2</translation>
</message>
</context>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5945,17 +6035,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Velg en bruker:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Brukere</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Profilvelger</translation>
</message>
@@ -5970,7 +6060,7 @@ Please try again or contact the developer of the software.</source>
<message>
<location filename="../../src/yuzu/applets/qt_software_keyboard.ui" line="199"/>
<source>Enter Text</source>
- <translation type="unfinished"/>
+ <translation>Skriv inn tekst</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_software_keyboard.ui" line="479"/>
@@ -5979,7 +6069,11 @@ Please try again or contact the developer of the software.</source>
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:26pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
+&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
+p, li { white-space: pre-wrap; }
+&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:26pt; font-weight:400; font-style:normal;&quot;&gt;
+&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_software_keyboard.cpp" line="399"/>
@@ -6004,7 +6098,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation type="unfinished"/>
</message>
@@ -6012,17 +6106,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation type="unfinished"/>
</message>
@@ -6030,25 +6124,25 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
- <translation type="unfinished"/>
+ <translation>venter på alle objekter</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
- <translation type="unfinished"/>
+ <translation>venter på ett av de følgende objektene</translation>
</message>
</context>
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
- <translation type="unfinished"/>
+ <translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation type="unfinished"/>
</message>
@@ -6056,112 +6150,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
- <translation>pause</translation>
+ <translation>pauset</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>sover</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
- <translation type="unfinished"/>
+ <translation>venter på IPC-svar</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
- <translation type="unfinished"/>
+ <translation>venter på objekter</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
- <translation type="unfinished"/>
+ <translation>venter</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
- <translation type="unfinished"/>
+ <translation>ukjent</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
- <translation type="unfinished"/>
+ <translation>ideell</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>kjerne %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>prosessor = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>ideell Kjerne = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>tråd id = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>prioritet = %1(nåværende) / %2(normal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation type="unfinished"/>
</message>
@@ -6169,7 +6263,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation type="unfinished"/>
</message>
@@ -6177,7 +6271,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/nl.ts b/dist/languages/nl.ts
index e33814e5a..118598eb7 100644
--- a/dist/languages/nl.ts
+++ b/dist/languages/nl.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Communiceren met de server...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Annuleren</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Raak de linkerbovenhoek &lt;br&gt; van uw touchpad aan.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>klik nu op toets &lt;br&gt; op je toetsenbord</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Configuratie compleet!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -355,7 +355,19 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU settings zijn alleen toegankelijk als er geen spel draait</translation>
</message>
@@ -508,11 +520,38 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU-instellingen zijn alleen beschikbaar als het spel niet actief is.</translation>
</message>
@@ -670,7 +709,12 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation type="unfinished"/>
</message>
@@ -721,78 +765,78 @@ p, li { white-space: pre-wrap; }
<translation>yuzu Configuratie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Geluid</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Debug</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Bestandssysteem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Algemeen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Grafisch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>GeAdvanceerdeGrafisch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Sneltoetsen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Bediening</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Profielen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Systeem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Game Lijst</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1027,12 +1071,12 @@ p, li { white-space: pre-wrap; }
<translation>Reset alle instellingen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Hiermee worden alle instellingen gereset en alle configuraties per game verwijderd. Hiermee worden gamedirectory&apos;s, profielen of invoerprofielen niet verwijderd. Doorgaan?</translation>
</message>
@@ -1261,7 +1305,7 @@ p, li { white-space: pre-wrap; }
<translation>Achtergrondkleur:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation type="unfinished"/>
</message>
@@ -1829,7 +1873,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Linker Stick</translation>
</message>
@@ -1923,14 +1967,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1949,7 +1993,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Plus:</translation>
</message>
@@ -1962,15 +2006,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2027,230 +2071,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Rechter Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Verwijder</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[niet ingesteld]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Shakel Knop</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Spiegel As</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Zet Analoge Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Na OK in te drukken, beweeg je joystick eerst horizontaal en dan verticaal.
Om de assen te spiegelen, beweek je joystick eerst verticaal en dan horizontaal.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Deadzone: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Bewerk Range: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Twee Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Linker Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Rechter Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Mobiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>GameCube Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Start / Pauze</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Control Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Shudden!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[aan het wachten]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Nieuw Profiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Voer nieuwe gebruikersnaam in:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Creëer een nieuw Invoer Profiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>De ingevoerde Profiel naam is niet geldig</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Het is mislukt om Invoer Profiel &quot;%1 te Creëer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Verwijder invoer profiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Het is mislukt om Invoer Profiel &quot;%1 te Verwijderen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Laad invoer profiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Het is mislukt om Invoer Profiel &quot;%1 te Laden</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Sla Invoer profiel op</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Het is mislukt om Invoer Profiel &quot;%1 Op te slaan</translation>
</message>
@@ -2298,7 +2342,7 @@ Om de assen te spiegelen, beweek je joystick eerst verticaal en dan horizontaal.
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Configureer</translation>
</message>
@@ -2334,7 +2378,7 @@ Om de assen te spiegelen, beweek je joystick eerst verticaal en dan horizontaal.
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Test</translation>
</message>
@@ -2349,82 +2393,82 @@ Om de assen te spiegelen, beweek je joystick eerst verticaal en dan horizontaal.
<translation>Externe Server</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Leer Meer&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>Yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Poortnummer bevat ongeldige tekens</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>Poort moet in bereik 0 en 65353 zijn</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>IP adress is niet geldig</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Deze UDP server bestaat al</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Kan niet meer dan 8 servers toevoegen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Testen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Configureren</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Test Succesvol</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>De data van de server is succesvol ontvangen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Test Gefaald</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Kan niet de juiste data van de server ontvangen.&lt;br&gt;Verifieer dat de server is goed opgezet en dat het adres en poort correct zijn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>UDP Test of calibratie configuratie is bezig.&lt;br&gt;Wacht alstublieft totdat het voltooid is.</translation>
</message>
@@ -2452,7 +2496,7 @@ Om de assen te spiegelen, beweek je joystick eerst verticaal en dan horizontaal.
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Geen</translation>
</message>
@@ -2505,47 +2549,47 @@ Om de assen te spiegelen, beweek je joystick eerst verticaal en dan horizontaal.
<translation>Ontwikkelaar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Algemeen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Systeem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Grafisch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Adv. Grafisch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Geluid</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Eigenschappen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Gebruik globale configuratie (%1)</translation>
</message>
@@ -2563,12 +2607,12 @@ Om de assen te spiegelen, beweek je joystick eerst verticaal en dan horizontaal.
<translation>Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Patch Naam</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Versie</translation>
</message>
@@ -2626,7 +2670,7 @@ Om de assen te spiegelen, beweek je joystick eerst verticaal en dan horizontaal.
<translation>Profiel beheer is alleen beschikbaar wanneer het spel niet bezig is.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2634,92 +2678,92 @@ Om de assen te spiegelen, beweek je joystick eerst verticaal en dan horizontaal.
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Voer een Gebruikersnaam in</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Gebruikers</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Voer een gebruikersnaam in voor de nieuwe gebruiker:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Voer nieuwe gebruikersnaam in:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Bevestig Verwijdering</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Je staat op het punt een gebruiker met de naam &quot;%1&quot; te verwijderen. Weet je het zeker?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Selecteer gebruiker&apos;s foto</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>JPEG foto&apos;s (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Fout tijdens verwijderen afbeelding</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Er is een fout opgetreden bij het overschrijven van de vorige afbeelding in: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Fout tijdens verwijderen bestand</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Kan bestaand bestand niet verwijderen: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Fout tijdens het maken van de map met afbeeldingen van de gebruiker</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Fout tijdens het maken van map %1 om gebruikersafbeeldingen in te bewaren.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Fout tijdens het kopiëren van de gebruiker afbeelding</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Kan afbeelding niet kopiëren van %1 naar %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation type="unfinished"/>
</message>
@@ -3163,17 +3207,17 @@ Om de assen te spiegelen, beweek je joystick eerst verticaal en dan horizontaal.
<translation>Systeeminstellingen zijn enkel toegankelijk wanneer er geen game draait.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Dit vervangt je huidige virtuele Switch met een nieuwe. Je huidige virtuele Switch kan dan niet meer worden hersteld. Dit kan onverwachte effecten hebben in spellen. Dit werkt niet als je een oude config savegame gebruikt. Doorgaan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Waarschuwing</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>Console ID: 0x%1</translation>
</message>
@@ -3289,54 +3333,54 @@ Sleep punten om positie te veranderen, of dubbel klik één van de tabel cellen
<translation>Verwijder Punt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Knop</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Nieuw Profiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Voer een naam in voor het nieuwe profiel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Verwijder Profiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Verwijder Profiel %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Hernoem Profiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Nieuwe naam:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[druk op toets]</translation>
</message>
@@ -3774,892 +3818,893 @@ Sleep punten om positie te veranderen, of dubbel klik één van de tabel cellen
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Annonieme gegevens worden verzameld&lt;/a&gt; om yuzu te helpen verbeteren. &lt;br/&gt;&lt;br/&gt; Zou je jouw gebruiksgegevens met ons willen delen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetrie</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Web Applet Laden...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Huidige emulatie snelheid. Waardes hoger of lager dan 100% betekent dat de emulatie sneller of langzamer loopt dan de Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Hoeveel frames per seconde de game op dit moment weergeeft. Dit zal veranderen van game naar game en van scène naar scène.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tijd gebruikt om een frame van de Switch te emuleren, waarbij framelimiteren of v-sync niet wordt meegerekend. Voor emulatie op volledige snelheid zou dit maximaal 16.67 ms zijn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Pauzeren</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Waarschuwing Verouderd Spel Formaat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Je gebruikt gedeconstrueerd ROM map formaat voor dit Spel, dit is een verouderd formaat en is vervangen door formaten zoals NCA, NAX, XCI of NSP. Gedeconstrueerd ROM map heeft geen iconen, metadata en update understeuning.&lt;br&gt;&lt;br&gt;Voor een uitleg over welke Switch formaten yuzu ondersteund, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;kijk op onze wiki&lt;/a&gt;. Dit bericht word niet nog een keer weergegeven.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Fout tijdens het laden van een ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>Het formaat van de ROM is niet ondersteunt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Er is een fout opgetreden tijdens het initialiseren van de videokern.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Een onbekende fout heeft plaatsgevonden. Kijk in de log voor meer details.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Save Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Mod Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Fout tijdens het openen van %1 folder</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Folder bestaat niet!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Fout Bij Het Openen Van Overdraagbare Shader Cache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>Er bestaat geen shader cache voor deze game</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS Extractie Mislukt!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Er was een fout tijdens het kopiëren van de RomFS bestanden of de gebruiker heeft de operatie geannuleerd.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Vol</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Skelet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Selecteer RomFS Dump Mode</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Selecteer alstublieft hoe je de RomFS wilt dumpen.&lt;br&gt;Volledig kopieërd alle bestanden in een map terwijl &lt;br&gt; skelet maakt alleen het map structuur.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>RomFS uitpakken...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Annuleren</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS Extractie Geslaagd!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>De operatie is succesvol voltooid.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Fout bij openen %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Selecteer Map</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Eigenschappen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>De eigenschappen van de game kunnen niet geladen worden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch Executable (%1);;Alle bestanden (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Laad Bestand</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Open Gedecomprimeerd ROM Map</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Ongeldige Map Geselecteerd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>De map die je hebt geselecteerd bevat geen &apos;main&apos; bestand.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Bestand &quot;%1&quot; Installeren...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Systeem Applicatie</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Systeem Archief</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Systeem Applicatie Update</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Filmware Pakket (Type A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Filmware Pakket (Type B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Game</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Game Update</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Game DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Delta Titel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Selecteer NCA Installatie Type...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Selecteer het type titel hoe je wilt dat deze NCA installeerd:
(In de meeste gevallen is de standaard &apos;Game&apos; juist.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Installatie Mislukt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Het type title dat je hebt geselecteerd voor de NCA is ongeldig.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Bestand niet gevonden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Bestand &quot;%1&quot; niet gevonden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Je yuzu account mist</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Om game campatibiliteit te raporteren, moet je je yuzu account koppelen.&lt;br&gt;&lt;br/&gt; Om je yuzu account te koppelen, ga naar Emulatie &amp;gt; Configuratie &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo Bestand (%1);; Alle Bestanden (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Laad Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Fout tijdens het openen van het Amiibo gegevens bestand</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Kan Amiibo bestand &quot;%1&quot; niet lezen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Fout tijdens het lezen van het Amiibo gegevens bestand</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Kan de volledige Amiibo gegevens niet lezen. Verwacht om %1 bytes te lezen, maar het is alleen mogelijk om %2 bytes te lezen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Fout tijdens het laden van de Amiibo data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Kan de Amiibo gegevens niet laden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Screenshot Vastleggen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG afbeelding (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Snelheid: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Snelheid: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Game: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Frame: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>De game die je probeert te laden heeft extra bestanden nodig van je Switch voordat je het kan spelen. &lt;br/&gt;&lt;br/&gt;Voor meer informatie over het dumpen van deze bestanden, volg alsjeblieft onze wiki pagina: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Het dumpen van Systeem Archieven en de Gedeelde Lettertypen van een Switch console &lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;Wil je terug gaan naar de game lijst? Verdergaan met de emulatie zal misschien gevolgen hebben als vastlopen, beschadigde opslag data, of andere problemen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu was niet in staat om de Switch systeem archieven te vinden. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu was niet in staat om de Switch systeem archieven te vinden. %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Systeem Archief Niet Gevonden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Systeem Archief Mist</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu was niet in staat om de Switch shared fonts te vinden. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Shared Fonts Niet Gevonden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Gedeelde Lettertypes Niet Gevonden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Fatale Fout</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu is een fatale fout tegengekomen, zie de log voor meer details. Voor meer informatie over toegang krijgen tot de log, zie de volgende pagina: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Hoe upload je een log bestand&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Zou je terug willen naar de game lijst? Doorgaan met emulatie kan resulteren in vastlapen, corrupte save gegevens, of andere problemen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Fatale Fout opgetreden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Bevestig Sleutel Herafleiding</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4676,37 +4721,37 @@ en optioneel maak backups.
Dit zal je automatisch gegenereerde sleutel bestanden verwijderen en de sleutel verkrijger module opnieuw starten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4714,39 +4759,39 @@ on your system&apos;s performance.</source>
op je systeem&apos;s performatie.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Sleutels afleiden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Selecteer RomFS Dump Doel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Selecteer welke RomFS je zou willen dumpen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Weet je zeker dat je yuzu wilt sluiten?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Weet je zeker dat je de emulatie wilt stoppen? Alle onopgeslagen voortgang will verloren gaan.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4758,38 +4803,38 @@ Wilt u dit omzeilen en toch afsluiten?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
@@ -4951,77 +4996,77 @@ Wilt u dit omzeilen en toch afsluiten?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfect</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Game functioneerd foutloos, zonder auditieve of grafische glitches. Alle geteste functionaliteit werkt zoals bedoeld zonder dat er tijdelijke oplossingen nodig zijn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Goed</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Game werkt met kleine grafische of auditieve glitches en is speelbaar van start tot eind. Kan enkele workarounds nodig hebben.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Okay</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>Game werkt met grove grafische of auditieve glitches, maar is speelbaar van start tot eind met workarounds</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Slecht</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Game werkt, maar met grove grafische of auditieve glitches. Specifieke gebieden kunnen niet worden uitgespeeld vanwege glitches, zelfs met workarounds.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/Menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>Game is compleet onspeelbaar dankzij grove grafische of auditieve glitches. Onmogelijk voorbij het startscherm te gaan.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Start Niet</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>De Game crasht wanneer hij probeert op te starten.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Niet Getest</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Deze Game is nog niet getest.</translation>
</message>
@@ -5055,22 +5100,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Installeer Bestanden naar NAND</translation>
</message>
@@ -5102,22 +5147,22 @@ Screen.</source>
<translation>Geschatte Tijd 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Laden...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Shaders Laden %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Starten...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Geschatte Tijd %1</translation>
</message>
@@ -5393,284 +5438,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Geïnstalleerde SD Titels</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Geïnstalleerde NAND Titels</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Systeem Titels</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Voeg Nieuwe Game Map Toe</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[niet aangegeven]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Hat %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Axis %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Knop %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[onbekend]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Links:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Rechts:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Beneden:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Boven:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Touch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[ongebruikt]</translation>
</message>
@@ -5711,7 +5756,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
@@ -5724,7 +5769,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Twee Joycons</translation>
</message>
@@ -5737,7 +5782,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Linker Joycon</translation>
</message>
@@ -5750,7 +5795,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Rechter Joycon</translation>
</message>
@@ -5778,7 +5823,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Mobiel</translation>
</message>
@@ -5899,32 +5944,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>GameCube Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
@@ -5963,7 +6008,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5971,17 +6016,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Selecteer een gebruiker:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Gebruikers</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Profiel keuzeschakelaar</translation>
</message>
@@ -6030,7 +6075,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Call stack</translation>
</message>
@@ -6038,17 +6083,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>wachten op mutex 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>heeft wachtende: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>eigenaar handvat: 0x%1</translation>
</message>
@@ -6056,12 +6101,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>wachten op alle objecten</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>wachten op een van de volgende objecten</translation>
</message>
@@ -6069,12 +6114,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>wachtend door geen draad</translation>
</message>
@@ -6082,112 +6127,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>uitvoerbaar</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>gepauzeerd</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>slapen</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>wachten op IPC antwoord</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>wachten op objecten</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>wachten op conditie variabele</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>wachten op adres arbiter</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>aan het wachten</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>geinitialiseerd</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>beëindigd</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>onbekend</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideaal</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>kern %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>processor = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>ideale kern = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>affiniteit masker = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>draad id = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>prioriteit = %1(huidige) / %2(normaal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>laatste lopende ticks = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>Niet wachtend op mutex</translation>
</message>
@@ -6195,7 +6240,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>Wachtend door draad</translation>
</message>
@@ -6203,7 +6248,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/pl.ts b/dist/languages/pl.ts
index 48c4820a0..2234e3d55 100644
--- a/dist/languages/pl.ts
+++ b/dist/languages/pl.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Łączenie z serwerem...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Anuluj</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Dotknij lewy górny róg &lt;br&gt; swojego touchpada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Dotknij prawy dolny róg &lt;br&gt; swojego touchpada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Konfiguracja zakończona!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -354,7 +354,19 @@ Wyłączenie tej opcji może pozwolić grze na zapis lub odczyt pamięci emulato
<translation>Wyłącz sprawdzanie przestrzeni adresów</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Ustawienia CPU są dostępne tylko wtedy, gdy gra nie jest uruchomiona.</translation>
</message>
@@ -513,11 +525,38 @@ Gdy ta opcja jest włączona, niedopasowanie jest uruchamiane tylko wtedy, gdy d
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>Włącz Emulację Hosta MMU</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Ustawienia CPU są dostępne tylko wtedy, gdy gra nie jest uruchomiona.</translation>
</message>
@@ -675,7 +714,12 @@ Gdy ta opcja jest włączona, niedopasowanie jest uruchamiane tylko wtedy, gdy d
<translation>Włącz wszystkie Typy Kontrolerów</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**To zresetuje się automatycznie po wyłączeniu yuzu.</translation>
</message>
@@ -725,78 +769,78 @@ Gdy ta opcja jest włączona, niedopasowanie jest uruchamiane tylko wtedy, gdy d
<translation>Ustawienia yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Dźwięk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Wyszukiwanie usterek</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>System plików</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Ogólne</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>Zaawansowana grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Skróty klawiszowe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Sterowanie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Profile</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Sieć</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Lista Gier</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1031,12 +1075,12 @@ Gdy ta opcja jest włączona, niedopasowanie jest uruchamiane tylko wtedy, gdy d
<translation>Resetuj wszystkie ustawienia</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Spowoduje to zresetowanie wszystkich ustawień i usunięcie wszystkich konfiguracji gier. Nie spowoduje to usunięcia katalogów gier, profili ani profili wejściowych. Kontynuować?</translation>
</message>
@@ -1265,7 +1309,7 @@ Gdy ta opcja jest włączona, niedopasowanie jest uruchamiane tylko wtedy, gdy d
<translation>Kolor tła</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Zgromadzone Shadery, tylko NVIDIA)</translation>
</message>
@@ -1834,7 +1878,7 @@ Pozostaw tą funkcję włączoną, jeśli nie widać różnicy w wydajności.</t
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Lewa gałka</translation>
</message>
@@ -1928,14 +1972,14 @@ Pozostaw tą funkcję włączoną, jeśli nie widać różnicy w wydajności.</t
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1954,7 +1998,7 @@ Pozostaw tą funkcję włączoną, jeśli nie widać różnicy w wydajności.</t
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
@@ -1967,15 +2011,15 @@ Pozostaw tą funkcję włączoną, jeśli nie widać różnicy w wydajności.</t
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2032,230 +2076,230 @@ Pozostaw tą funkcję włączoną, jeśli nie widać różnicy w wydajności.</t
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Prawa gałka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Wyczyść</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[nie ustawione]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Przycisk Toggle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>Odwróć przycisk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Odwróć oś</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>Ustaw próg</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Wybierz wartość od 0% do 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation>Ustaw próg gyro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Przypisz Drążek Analogowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Po naciśnięciu OK, najpierw przesuń joystick w poziomie, a następnie w pionie.
Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Martwa strefa: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Zasięg Modyfikatora: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Para Joyconów</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Lewy Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Prawy Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Kontroler GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>Kontroler NES/Pegasus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>Kontroler SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>Kontroler N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>Sega Mega Drive</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Start / Pauza</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Lewa gałka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-gałka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Potrząśnij!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[oczekiwanie]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Nowy profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Wpisz nazwę profilu:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Utwórz profil wejściowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>Podana nazwa profilu jest nieprawidłowa!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Nie udało się utworzyć profilu wejściowego &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Usuń profil wejściowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Nie udało się usunąć profilu wejściowego &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Załaduj profil wejściowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Nie udało się wczytać profilu wejściowego &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Zapisz profil wejściowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Nie udało się zapisać profilu wejściowego &quot;%1&quot;</translation>
</message>
@@ -2303,7 +2347,7 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Konfiguruj</translation>
</message>
@@ -2339,7 +2383,7 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Test</translation>
</message>
@@ -2354,82 +2398,82 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
<translation>Usuń serwer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Dowiedz się więcej&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Port zawiera nieprawidłowe znaki</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>Port musi być w zakresie 0-65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>Adres IP nie jest prawidłowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Ten serwer UDP już istnieje</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Nie można dodać więcej niż 8 serwerów</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Testowanie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Konfigurowanie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Test Udany</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Pomyślnie odebrano dane z serwera.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Test nieudany</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Nie można odebrać poprawnych danych z serwera.&lt;br&gt;Sprawdź, czy serwer jest poprawnie skonfigurowany, a adres i port są prawidłowe.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>Trwa konfiguracja testu UDP lub kalibracji.&lt;br&gt;Poczekaj na zakończenie.</translation>
</message>
@@ -2457,7 +2501,7 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
<translation>Interfejs Sieciowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Żadny</translation>
</message>
@@ -2510,47 +2554,47 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
<translation>Deweloper</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Dodatki</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Ogólne</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Zaaw. Grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Dźwięk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Właściwości</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Użyj globalnej konfiguracji (%1)</translation>
</message>
@@ -2568,12 +2612,12 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
<translation>Dodatki</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Nazwa łatki</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Wersja</translation>
</message>
@@ -2631,7 +2675,7 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
<translation>Menedżer Profili nie jest dostępny gdy gra jest uruchomiona.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2639,92 +2683,92 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Wpisz nazwę użytkownika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Użytkownicy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Wprowadź nazwę dla nowego użytkownika:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Wpisz nową nazwę użytkownika:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Potwierdź usunięcie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Zamierzasz usunąć użytkownika &quot;%1&quot;. Jesteś pewien?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Ustaw zdjęcie użytkownika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Obrazki JPEG (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Bład usunięcia zdjęcia</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Błąd podczas próby nadpisania poprzedniego zdjęcia dla: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Błąd usunięcia pliku</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Nie można usunąć istniejącego pliku: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Błąd podczas tworzenia folderu ze zdjęciem użytkownika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Nie można utworzyć ścieżki %1 do przechowywania zdjęć użytkownika.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Błąd kopiowania zdjęcia użytkownika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Nie można skopiować zdjęcia z %1 do %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Błąd podczas zmieniania rozmiaru obrazu użytkownika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>Nie można zmienić rozmiaru obrazu</translation>
</message>
@@ -3168,17 +3212,17 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
<translation>Ustawienia systemu są dostępne tylko wtedy, gdy gra nie jest uruchomiona.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>To zamieni twojego obecnego Switch&apos;a z nowym. Twojego obecnego Switch&apos;a nie będzie można przywrócić. To może wywołać nieoczekiwane problemy w grach. To może nie zadziałać, jeśli używasz nieaktualnej konfiguracji zapisu gry. Kontynuować?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Ostrzeżenie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>Identyfikator konsoli: 0x%1</translation>
</message>
@@ -3294,54 +3338,54 @@ Przeciągnij punkty, aby zmienić pozycję, lub kliknij dwukrotnie komórki tabe
<translation>Usuń Punkt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Przycisk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Nowy profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Wprowadź nazwę dla nowego profilu:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Usuń profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Usunąć profil %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Zmień nazwę profilu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Nowa nazwa:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[naciśnij przycisk]</translation>
</message>
@@ -3779,482 +3823,483 @@ Przeciągnij punkty, aby zmienić pozycję, lub kliknij dwukrotnie komórki tabe
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Dane anonimowe są gromadzone&lt;/a&gt; aby ulepszyć yuzu. &lt;br/&gt;&lt;br/&gt;Czy chcesz udostępnić nam swoje dane o użytkowaniu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetria</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Ładowanie apletu internetowego...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Wyłącz Aplet internetowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>Wyłączenie apletu sieciowego spowoduje, że nie będzie on wyświetlany przez resztę emulowanej sesji. Może to prowadzić do niezdefiniowanych zachowań i powinno być używane tylko z Super Mario 3D All-Stars. Czy na pewno chcesz wyłączyć aplet sieciowy?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>Ilość budowanych shaderów</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Obecnie wybrany mnożnik rozdzielczości.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Aktualna prędkość emulacji. Wartości większe lub niższe niż 100% wskazują, że emulacja działa szybciej lub wolniej niż Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Ile klatek na sekundę gra aktualnie wyświetla. To będzie się różnić w zależności od gry, od sceny do sceny.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Czas potrzebny do emulacji klatki na sekundę Switcha, nie licząc ograniczania klatek ani v-sync. Dla emulacji pełnej szybkości powinno to wynosić co najwyżej 16,67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>DOCK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Usuń Ostatnie pliki</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Kontynuuj</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Pauza</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation>yuzu jest w trakcie gry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>OSTRZEŻENIE! Nieaktualny format gry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Używasz zdekonstruowanego formatu katalogu ROM dla tej gry, który jest przestarzałym formatem, który został zastąpiony przez inne, takie jak NCA, NAX, XCI lub NSP. W zdekonstruowanych katalogach ROM brakuje ikon, metadanych i obsługi aktualizacji.&lt;br&gt;&lt;br&gt; Aby znaleźć wyjaśnienie różnych formatów Switch obsługiwanych przez yuzu,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt; sprawdź nasze wiki&lt;/a&gt;. Ta wiadomość nie pojawi się ponownie.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Błąd podczas wczytywania ROMu!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>Ten format ROMu nie jest wspierany.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Wystąpił błąd podczas inicjowania rdzenia wideo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu napotkał błąd podczas uruchamiania rdzenia wideo. Jest to zwykle spowodowane przestarzałymi sterownikami GPU, w tym zintegrowanymi. Więcej szczegółów znajdziesz w pliku log. Więcej informacji na temat dostępu do log-u można znaleźć na następującej stronie: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Jak przesłać plik log&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Błąd podczas wczytywania ROMu! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Postępuj zgodnie z&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu quickstart guide&lt;/a&gt; aby zrzucić ponownie swoje pliki.&lt;br&gt;Możesz odwołać się do wiki yuzu&lt;/a&gt;lub discord yuzu &lt;/a&gt; po pomoc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Wystąpił nieznany błąd. Więcej informacji można znaleźć w pliku log.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Zapis danych</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Dane modów</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Błąd podczas otwarcia folderu %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Folder nie istnieje!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Błąd podczas otwierania przenośnej pamięci podręcznej Shaderów.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Nie udało się stworzyć ścieżki shaderów dla tego tytułu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Zawartość</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Łatka</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Usuń wpis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Usunąć zainstalowaną grę %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Pomyślnie usunięto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>Pomyślnie usunięto zainstalowaną grę.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Błąd podczas usuwania %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Gra nie jest zainstalowana w NAND i nie może zostać usunięta.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Pomyślnie usunięto zainstalowaną łatkę.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Brak zainstalowanych łatek dla tego tytułu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Brak zainstalowanych DLC dla tego tytułu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Pomyślnie usunięto %1 zainstalowane DLC.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Usunąć Transferowalne Shadery OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Usunąć Transferowalne Shadery Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Usunąć Wszystkie Transferowalne Shadery?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Usunąć niestandardową konfigurację gry?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Usuń plik</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Błąd podczas usuwania przenośnej pamięci podręcznej Shaderów.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>Pamięć podręczna Shaderów dla tego tytułu nie istnieje.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Pomyślnie usunięto przenośną pamięć podręczną Shaderów.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Nie udało się usunąć przenośnej pamięci Shaderów.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Błąd podczas usuwania Transferowalnych Shaderów</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Pomyślnie usunięto transferowalne shadery.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Nie udało się usunąć ścieżki transferowalnych shaderów.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Błąd podczas usuwania niestandardowej konfiguracji</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Niestandardowa konfiguracja nie istnieje dla tego tytułu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Pomyślnie usunięto niestandardową konfiguracje gry.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Nie udało się usunąć niestandardowej konfiguracji gry.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>Wypakowanie RomFS nieudane!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Wystąpił błąd podczas kopiowania plików RomFS lub użytkownik anulował operację.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Pełny</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Szkielet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Wybierz tryb zrzutu RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Proszę wybrać w jaki sposób chcesz, aby zrzut pliku RomFS został wykonany. &lt;br&gt;Pełna kopia ze wszystkimi plikami do nowego folderu, gdy &lt;br&gt;skielet utworzy tylko strukturę folderu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>Nie ma wystarczająco miejsca w %1 aby wyodrębnić RomFS.
Zwolnij trochę miejsca, albo zmień ścieżkę zrzutu RomFs w Emulacja&gt; Konfiguruj&gt; System&gt; System Plików&gt; Źródło Zrzutu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Wypakowywanie RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Anuluj</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Wypakowanie RomFS zakończone pomyślnie!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>Operacja zakończona sukcesem.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Błąd podczas otwierania %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Wybierz folder...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Właściwości</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Właściwości tej gry nie mogły zostać załadowane.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Plik wykonywalny Switcha (%1);;Wszystkie pliki (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Załaduj plik...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Otwórz folder wypakowanego ROMu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Wybrano niewłaściwy folder</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Folder wybrany przez ciebie nie zawiera &apos;głownego&apos; pliku.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Instalacyjne pliki Switch&apos;a (*.nca *.nsp *.xci);;Archiwum zawartości Nintendo (*.nca);;Pakiet poddany Nintendo (*.nsp);;Obraz z kartridża NX (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Zainstaluj pliki</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation><numerusform>1 plik został</numerusform><numerusform>%n plików zostało</numerusform><numerusform>%n plików zostało</numerusform><numerusform>%n plików zostało</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instalowanie pliku &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Wynik instalacji</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Aby uniknąć ewentualnych konfliktów, odradzamy użytkownikom instalowanie gier na NAND.
Proszę, używaj tej funkcji tylko do instalowania łatek i DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>1 nowy plik został zainstalowany
@@ -4264,414 +4309,414 @@ Proszę, używaj tej funkcji tylko do instalowania łatek i DLC.</translation>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>1 plik został nadpisany</numerusform><numerusform>%n plików zostało nadpisane</numerusform><numerusform>%n plików zostało nadpisane</numerusform><numerusform>%n plików zostało nadpisane</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>1 pliku nie udało się zainstalować</numerusform><numerusform>%n plików nie udało się zainstalować</numerusform><numerusform>%n plików nie udało się zainstalować</numerusform><numerusform>%n plików nie udało się zainstalować</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Aplikacja systemowa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Archiwum systemu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Aktualizacja aplikacji systemowej</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Paczka systemowa (Typ A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Paczka systemowa (Typ B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Gra</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Aktualizacja gry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Dodatek do gry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Tytuł Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Wybierz typ instalacji NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Wybierz typ tytułu, do którego chcesz zainstalować ten NCA, jako:
(W większości przypadków domyślna &quot;gra&quot; jest w porządku.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Instalacja nieudana</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Typ tytułu wybrany dla NCA jest nieprawidłowy.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Nie znaleziono pliku</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Nie znaleziono pliku &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Brakuje konta Yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Aby przesłać test zgodności gry, musisz połączyć swoje konto yuzu.&lt;br&gt;&lt;br/&gt; Aby połączyć swoje konto yuzu, przejdź do opcji Emulacja &amp;gt; Konfiguracja &amp;gt; Sieć.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Błąd otwierania adresu URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Nie można otworzyć adresu URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>Nagrywanie TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>Nadpisać plik gracza 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Wykryto nieprawidłową konfigurację</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Nie można używać kontrolera handheld w trybie zadokowanym. Zostanie wybrany kontroler Pro.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Plik Amiibo (%1);;Wszyskie pliki (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Załaduj Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Błąd otwarcia pliku danych Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Nie można otworzyć pliku Amiibo &quot;%1&quot; do odczytu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Błąd podczas odczytu pliku danych Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Nie można w pełni odczytać danych Amiibo. Oczekiwano odczytu %1 bajtów, ale był on w stanie odczytać tylko %2 bajty.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Błąd podczas ładowania pliku danych Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Nie można załadować danych Amiibo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Zrób zrzut ekranu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>Obrazek PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>Status TAS: Działa %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>Status TAS: Nagrywa %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>Status TAS: Bezczynny %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>Status TAS: Niepoprawny</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>&amp;Wyłącz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>Przestań N&amp;agrywać</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>N&amp;agraj</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Budowanie shadera</numerusform><numerusform>Budowanie: %n shaderów</numerusform><numerusform>Budowanie: %n shaderów</numerusform><numerusform>Budowanie: %n shaderów</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Skala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Prędkość: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Prędkość: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Gra: %1 FPS (Odblokowane)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Gra: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Klatka: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMALNE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU WYSOKIE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EKSTREMALNE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>BŁĄD GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>NAJBLIŻSZY</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>BILINEARNY</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>BIKUBICZNY</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>GAUSSIAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>BEZ AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Gra, którą próbujesz wczytać, wymaga dodatkowych plików z Switch&apos;a, które zostaną zrzucone przed graniem.&lt;br/&gt;&lt;br/&gt; Aby uzyskać więcej informacji na temat wyrzucania tych plików, odwiedź następującą stronę wiki:&lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt; Zrzut archiw systemu i udostępnionych czcionek z konsoli Nintendo Switch&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;Czy chcesz wrócić do listy gier? Kontynuacja emulacji może spowodować awarie, uszkodzone dane zapisu lub inne błędy.
</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu nie był w stanie znaleźć archiwum systemu Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu nie był w stanie znaleźć archiwum systemu Switch. %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Archiwum systemu nie znalezione.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Brak archiwum systemowego</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu nie był w stanie zlokalizować czcionek Switch&apos;a. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Czcionki nie zostały znalezione</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Brak wspólnej czcionki</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Fatalny błąd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu napotkał błąd, proszę zobaczyć log po więcej szczegółów. Aby uzyskać więcej informacji na temat uzyskiwania dostępu do pliku log, zobacz następującą stronę: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Jak przesłać plik log&lt;/a&gt;?&lt;br/&gt;&lt;br/&gt; Czy chcesz wrócić do listy gier? Kontynuacja emulacji może spowodować awarie, uszkodzone dane zapisu lub inne błędy.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Wystąpił błąd krytyczny</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Potwierdź ponowną aktywacje klucza</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4688,37 +4733,37 @@ i opcjonalnie tworzyć kopie zapasowe.
Spowoduje to usunięcie wygenerowanych automatycznie plików kluczy i ponowne uruchomienie modułu pochodnego klucza.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Brakujące bezpieczniki</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation> - Brak BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - Brak BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation> - Brak PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Brak komponentów wyprowadzania</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Brakuje elementów, które mogą uniemożliwić zakończenie wyprowadzania kluczy. &lt;br&gt;Postępuj zgodnie z &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu quickstart guide&lt;/a&gt; aby zdobyć wszystkie swoje klucze i gry.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4727,39 +4772,39 @@ Zależnie od tego może potrwać do minuty
na wydajność twojego systemu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Wyprowadzanie kluczy...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Wybierz cel zrzutu RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Proszę wybrać RomFS, jakie chcesz zrzucić.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Czy na pewno chcesz zamknąć yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Czy na pewno chcesz zatrzymać emulację? Wszystkie niezapisane postępy zostaną utracone.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4771,38 +4816,38 @@ Czy chcesz to ominąć i mimo to wyjść?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL niedostępny!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu nie zostało skompilowane z obsługą OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Błąd podczas inicjowania OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Twoja karta graficzna może nie obsługiwać OpenGL lub nie masz najnowszych sterowników karty graficznej.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Błąd podczas inicjowania OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Twoja karta graficzna może nie obsługiwać OpenGL 4.6 lub nie masz najnowszych sterowników karty graficznej.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Twoja karta graficzna może nie obsługiwać co najmniej jednego wymaganego rozszerzenia OpenGL. Upewnij się, że masz najnowsze sterowniki karty graficznej&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Nieobsługiwane rozszerzenia:&lt;br&gt;%2</translation>
</message>
@@ -4964,82 +5009,82 @@ Czy chcesz to ominąć i mimo to wyjść?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfekcyjnie</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Funkcje gry są bezbłędne, bez żadnych zakłóceń audio i graficznych, wszystkie przetestowane funkcje działają zgodnie z przeznaczeniem bez
wszelkich potrzebnych obejść.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Świetnie</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Funkcje gry z drobnymi usterkami graficznymi lub dźwiękowymi i można je odtwarzać od początku do końca. Może wymagać niektórych
obejść.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>W porządku</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>Funkcje gry z dużymi usterkami graficznymi lub dźwiękowymi, ale gra jest odtwarzana od początku do końca z użyciem
obejść.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Zła</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Funkcje gry, ale z dużymi usterkami graficznymi lub dźwiękowymi. Nie można wykonać postępu w określonych obszarach z powodu problemów
nawet z obejściami.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/Menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>Gra jest całkowicie niemożliwa do zagrania z powodu poważnych usterków graficznych lub dźwiękowych. Nie można przejść ekran
startowy.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Nie uruchamia się</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>Ta gra się zawiesza przy próbie startu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Nie testowane</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Ta gra nie została jeszcze przetestowana.</translation>
</message>
@@ -5073,22 +5118,22 @@ startowy.</translation>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Potwierdź, że są to pliki, które chcesz zainstalować.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Zainstalowanie łatki lub DLC spowoduje nadpisanie poprzednio zainstalowanego.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Zainstaluj</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Zainstaluj pliki na NAND</translation>
</message>
@@ -5121,22 +5166,22 @@ startowy.</translation>
<translation>Szacowany czas 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Ładowanie...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Ładowanie Shaderów %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Uruchamianie...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Szacowany czas %1</translation>
</message>
@@ -5416,284 +5461,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Zainstalowane tytuły SD</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Zainstalowane tytuły NAND</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Tytuły systemu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Dodaj nowy katalog gier</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>Ulubione</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[nie ustawione]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Krzyżak %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Oś %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Przycisk %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[nieznane]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Lewo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Prawo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Dół</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Góra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation>Kółko</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation>Krzyż</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation>Kwadrat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation>Trójkąt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>Udostępnij</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>Opcje</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Dotyk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Kółko</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation>Do tyłu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation>Do przodu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation>Zadanie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation>Dodatkowe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[niezdefiniowane]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation>%1%2%3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[niepoprawne]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation>%1%2Drążek %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation>%1%2Oś %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Oś %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2Ruch %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation>%1%2Przycisk %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[nieużywane]</translation>
</message>
@@ -5734,7 +5779,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro kontroler</translation>
</message>
@@ -5747,7 +5792,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Para Joyconów</translation>
</message>
@@ -5760,7 +5805,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Lewy Joycon</translation>
</message>
@@ -5773,7 +5818,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Prawy Joycon</translation>
</message>
@@ -5801,7 +5846,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
@@ -5922,32 +5967,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Kontroler GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation>Kontroler NES/Pegasus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation>Kontroler SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation>Kontroler N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>Sega Mega Drive</translation>
</message>
@@ -5992,7 +6037,7 @@ Spróbuj ponownie lub skontaktuj się z twórcą oprogramowania.</translation>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -6000,17 +6045,17 @@ Spróbuj ponownie lub skontaktuj się z twórcą oprogramowania.</translation>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Wybierz użytkownika:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Użytkownicy</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Wybór profilu</translation>
</message>
@@ -6063,7 +6108,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Stos wywołań</translation>
</message>
@@ -6071,17 +6116,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>czekam na mutex 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>ma oczekujących: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>uchwyt właściciela: 0x%1</translation>
</message>
@@ -6089,12 +6134,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>czekam na wszystkie objekty</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>oczekiwanie na jeden z następujących obiektów</translation>
</message>
@@ -6102,12 +6147,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>czekam bez żadnego wątku</translation>
</message>
@@ -6115,112 +6160,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>Jakoś działa</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>Spauzowana</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>spanie</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>czekam na odpowiedź IPC</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>oczekiwanie na obiekty</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>oczekiwanie na zmienną warunkową</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>czekam na arbitra adresu</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>czekam na zawieszenie wznowienia</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>oczekiwanie</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>zainicjowano</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>zakończony</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>nieznany</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>Idealnie</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>rdzeń %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>procesor = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>idealny rdzeń = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>maska powinowactwa = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>identyfikator wątku = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>piorytet = %1(obecny) / %2(normalny)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>ostatnie działające kleszcze = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>nie czekam na mutex</translation>
</message>
@@ -6228,7 +6273,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>czekanie na wątek</translation>
</message>
@@ -6236,7 +6281,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>&amp;Drzewo Czekania</translation>
</message>
diff --git a/dist/languages/pt_BR.ts b/dist/languages/pt_BR.ts
index 89d9a348f..9170a1d9c 100644
--- a/dist/languages/pt_BR.ts
+++ b/dist/languages/pt_BR.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Comunicando com o servidor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Toque no canto superior esquerdo &lt;br&gt;do seu touchpad</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Agora toque no canto inferior direito &lt;br&gt;do seu touchpad</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Configuração concluída!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -359,7 +359,21 @@ p, li { white-space: pre-wrap; }
<translation>Desativar a verificação do espaço de endereços</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Esta opção melhora a velocidade ao depender apenas da semântica da instrução cmpxchg para garantir a segurança de instruções de acesso exclusivo. Observe que isto pode resultar em deadlocks e outras condições de concorrência.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation>Ignorar monitor global</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Os ajustes de CPU só estão disponíveis enquanto o jogo não estiver em execução.</translation>
</message>
@@ -519,11 +533,45 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>Ativar emulação da MMU do anfitrião</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation>Ativar emulação MMU do anfitrião (instruções de memória genéricas)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Esta otimização acelera os acessos de memória exclusiva pelo programa hóspede.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Ativar esta opção faz com que as leituras/escritas da memória exclusiva do hóspede sejam feitas diretamente na memória principal e façam uso do MMU do anfitrião.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Desativar isso força todos os acessos à memória exclusiva a usar a emulação de MMU via software.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation>Ativar emulação da MMU no anfitrião (instruções da memória exclusiva)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Esta otimização acelera os acessos de memória exclusiva pelo programa hóspede.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Ativá-la reduz a sobrecarga de falhas de fastmem dos acessos de memória exclusiva.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation>Ativar recompilação de instruções de memória exclusiva</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Os ajustes de CPU estão disponíveis apenas quando não houver nenhum jogo em execução.</translation>
</message>
@@ -681,7 +729,12 @@ p, li { white-space: pre-wrap; }
<translation>Ativar todos os tipos de controles</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation>Desativar o applet da web</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Isto será restaurado automaticamente assim que o yuzu for fechado.</translation>
</message>
@@ -731,78 +784,78 @@ p, li { white-space: pre-wrap; }
<translation>Configurações do yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Áudio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Depuração</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Sistema de arquivos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Geral</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>GráficosAvançado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Teclas de atalho</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Controles</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Perfis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Rede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Lista de jogos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Rede</translation>
</message>
@@ -1004,7 +1057,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="148"/>
<source>Extended memory layout (6GB DRAM)</source>
- <translation type="unfinished"/>
+ <translation>Layout de memória extendida (6GB DRAM)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="155"/>
@@ -1037,12 +1090,12 @@ p, li { white-space: pre-wrap; }
<translation>Redefinir todas as configurações</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Isto restaura todas as configurações e exclui as configurações individuais de todos os jogos. As pastas de jogos, perfis de jogos e perfis de controles não serão excluídos. Deseja prosseguir?</translation>
</message>
@@ -1271,7 +1324,7 @@ p, li { white-space: pre-wrap; }
<translation>Cor de fundo:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Shaders Assembly, apenas NVIDIA)</translation>
</message>
@@ -1839,7 +1892,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Analógico esquerdo</translation>
</message>
@@ -1933,14 +1986,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1959,7 +2012,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Mais</translation>
</message>
@@ -1972,15 +2025,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2037,230 +2090,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Analógico direito</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Limpar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[não definido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Alternar pressionamento do botão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>Inverter botão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Inverter eixo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>Definir limite</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Escolha um valor entre 0% e 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation>Definir limite do giroscópio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Mapear analógico</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Após pressionar OK, mova o seu direcional analógico primeiro horizontalmente e depois verticalmente.
Para inverter os eixos, mova seu analógico primeiro verticalmente e depois horizontalmente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation>Eixo central</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Zona morta: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Alcance de modificador: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Par de Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Joycon Esquerdo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Joycon Direito</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Portátil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Controle de GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>Controle NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>Controle SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>Controle N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>Mega Drive</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Iniciar / Pausar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Direcional de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Balance!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[esperando]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Novo perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Insira um nome para o perfil:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Criar perfil de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>O nome de perfil inserido não é válido!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Falha ao criar o perfil de controle &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Excluir perfil de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Falha ao excluir o perfil de controle &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Carregar perfil de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Falha ao carregar o perfil de controle &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Salvar perfil de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Falha ao salvar o perfil de controle &quot;%1&quot;</translation>
</message>
@@ -2308,7 +2361,7 @@ Para inverter os eixos, mova seu analógico primeiro verticalmente e depois hori
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Configurar</translation>
</message>
@@ -2344,7 +2397,7 @@ Para inverter os eixos, mova seu analógico primeiro verticalmente e depois hori
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Teste</translation>
</message>
@@ -2359,82 +2412,82 @@ Para inverter os eixos, mova seu analógico primeiro verticalmente e depois hori
<translation>Excluir servidor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Saiba mais&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>O número da porta tem caracteres inválidos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>A porta tem que estar entre 0 e 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>O endereço IP não é válido</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Este servidor UDP já existe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Não é possível adicionar mais de 8 servidores</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Testando</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Configurando</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Teste bem-sucedido</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation> Dados foram recebidos do servidor com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>O teste falhou</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Não foi possível receber dados válidos do servidor.&lt;br&gt;Verifique se o servidor foi configurado corretamente e o endereço e porta estão corretos.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>Um teste UDP ou configuração de calibração está em curso no momento.&lt;br&gt;Aguarde até a sua conclusão.</translation>
</message>
@@ -2462,7 +2515,7 @@ Para inverter os eixos, mova seu analógico primeiro verticalmente e depois hori
<translation>Interface de rede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Nenhum</translation>
</message>
@@ -2515,47 +2568,47 @@ Para inverter os eixos, mova seu analógico primeiro verticalmente e depois hori
<translation>Desenvolvedor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Adicionais</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Geral</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Gráf. avançados</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Áudio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Propriedades</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Usar configuração global (%1)</translation>
</message>
@@ -2573,12 +2626,12 @@ Para inverter os eixos, mova seu analógico primeiro verticalmente e depois hori
<translation>Adicionais</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Nome do patch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Versão</translation>
</message>
@@ -2636,7 +2689,7 @@ Para inverter os eixos, mova seu analógico primeiro verticalmente e depois hori
<translation>Esta tela só fica disponível apenas quando não houver nenhum jogo em execução.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2644,92 +2697,92 @@ Para inverter os eixos, mova seu analógico primeiro verticalmente e depois hori
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Escreva o nome de usuário</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Usuários</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Digite o nome do novo usuário:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Digite um novo nome de usuário:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Confirmar exclusão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Você está prestes a excluir o usuário &quot;%1&quot;. Tem certeza?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Selecione a imagem do usuário</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Imagens JPEG (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Erro ao excluir a imagem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Ocorreu um erro ao tentar substituir a imagem anterior em: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Erro ao excluir arquivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Não foi possível excluir o arquivo existente: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Erro ao criar a pasta de imagens do usuário</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Não foi possível criar a pasta %1 para armazenar as imagens do usuário.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Erro ao copiar a imagem do usuário</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Não foi possível copiar a imagem de %1 para %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Erro no redimensionamento da imagem do usuário</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>Não foi possível redimensionar a imagem</translation>
</message>
@@ -3173,17 +3226,17 @@ Para inverter os eixos, mova seu analógico primeiro verticalmente e depois hori
<translation>As configurações de sistema são acessíveis apenas quando não houver nenhum jogo em execução.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Isto substituirá o seu Switch virtual atual por um novo. O seu Switch virtual atual não poderá ser recuperado. Isto pode causar efeitos inesperados em jogos. Isto pode falhar caso você use um jogo salvo com configurações desatualizadas registradas nele. Continuar?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Aviso</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>ID do console: 0x%1</translation>
</message>
@@ -3299,54 +3352,54 @@ Mova os pontos para mudar a posição, ou clique duas vezes nas células da tabe
<translation>Excluir ponto</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Botão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Novo perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Insira o nome do novo perfil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Excluir perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Excluir perfil %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Renomear perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Novo nome:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[pressione a tecla]</translation>
</message>
@@ -3784,489 +3837,491 @@ Mova os pontos para mudar a posição, ou clique duas vezes nas células da tabe
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Dados anônimos são recolhidos&lt;/a&gt; para ajudar a melhorar o yuzu. &lt;br/&gt;&lt;br/&gt;Gostaria de compartilhar os seus dados de uso conosco?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetria</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Carregando applet web...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Desativar o applet da web</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>Desativar o applet web fará com que ele não apareça novamente até o final da sessão emulada. Isto pode causar comportamento inesperado e só deve ser usado com Super Mario 3D All-Stars. Você deseja mesmo desativar o applet web?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation>A desativação do applet da web pode causar comportamento inesperado e deve apenas ser usada com Super Mario 3D All-Stars. Você deseja mesmo desativar o applet da web?
+(Ele pode ser reativado nas configurações de depuração.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>A quantidade de shaders sendo construídos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>O atualmente multiplicador de escala de resolução selecionado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Velocidade atual de emulação. Valores maiores ou menores que 100% indicam que a emulação está rodando mais rápida ou lentamente que em um Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Quantos quadros por segundo o jogo está exibindo atualmente. Isto irá variar de jogo para jogo e cena para cena.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tempo que leva para emular um quadro do Switch, sem considerar o limitador de taxa de quadros ou a sincronização vertical. Um valor menor ou igual a 16.67 ms indica que a emulação está em velocidade plena.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>NA BASE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Limpar arquivos recentes</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Continuar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Pausar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation>yuzu está rodando um jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Aviso - formato de jogo desatualizado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Você está usando neste jogo o formato de ROM desconstruída e extraída em uma pasta, que é um formato desatualizado que foi substituído por outros, como NCA, NAX, XCI ou NSP. Pastas desconstruídas de ROMs não possuem ícones, metadados e suporte a atualizações.&lt;br&gt;&lt;br&gt;Para saber mais sobre os vários formatos de ROMs de Switch compatíveis com o yuzu, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;confira a nossa wiki&lt;/a&gt;. Esta mensagem não será exibida novamente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Erro ao carregar a ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>O formato da ROM não é suportado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Ocorreu um erro ao inicializar o núcleo de vídeo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu encontrou um erro enquanto rodando o núcleo de vídeo. Normalmente isto é causado por drivers de GPU desatualizados, incluindo integrados. Por favor veja o registro para mais detalhes. Para mais informações em acesso ao registro por favor veja a seguinte página: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Como fazer envio de arquivo de registro&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Erro ao carregar a ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Por favor, siga &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;o guia de início rápido&lt;/a&gt; para reextrair os seus arquivos.&lt;br&gt;Você pode consultar a wiki do yuzu&lt;/a&gt; ou o Discord do yuzu&lt;/a&gt; para obter ajuda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Ocorreu um erro desconhecido. Consulte o registro para mais detalhes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Dados de jogos salvos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Dados de mods</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Erro ao abrir a pasta %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>A pasta não existe!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Erro ao abrir o cache de shaders transferível</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Falha ao criar o diretório de cache de shaders para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Conteúdo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Atualização</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Remover item</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Remover o jogo instalado %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Removido com sucesso</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>O jogo base foi removido com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Erro ao remover %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>O jogo base não está instalado na NAND e não pode ser removido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>A atualização instalada foi removida com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Não há nenhuma atualização instalada para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Não há nenhum DLC instalado para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>%1 DLC(s) instalados foram removidos com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Apagar o cache de shaders transferível do OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Apagar o cache de shaders transferível do Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Apagar todos os caches de shaders transferíveis?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Remover configurações customizadas do jogo?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Remover arquivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Erro ao remover cache de shaders transferível</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>Não existe um cache de shaders para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>O cache de shaders transferível foi removido com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Falha ao remover o cache de shaders transferível.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Erro ao remover os caches de shaders transferíveis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Os caches de shaders transferíveis foram removidos com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Falha ao remover o diretório do cache de shaders transferível.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Erro ao remover as configurações customizadas do jogo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Não há uma configuração customizada para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>As configurações customizadas do jogo foram removidas com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Falha ao remover as configurações customizadas do jogo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>Falha ao extrair RomFS!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Houve um erro ao copiar os arquivos RomFS ou o usuário cancelou a operação.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Extração completa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Apenas estrutura</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Selecione o modo de extração do RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Selecione a forma como você gostaria que o RomFS seja extraído.&lt;br&gt;&quot;Extração completa&quot; copiará todos os arquivos para a nova pasta, enquanto que &lt;br&gt;&quot;Apenas estrutura&quot; criará apenas a estrutura de pastas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>Não há espaço suficiente em %1 para extrair o RomFS. Por favor abra espaço ou selecione um diretório diferente em Emulação &gt; Configurar &gt; Sistema &gt; Sistema de arquivos &gt; Extrair raiz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Extraindo RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Extração do RomFS concluida!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>A operação foi concluída com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Erro ao abrir %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Selecionar pasta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Propriedades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>As propriedades do jogo não puderam ser carregadas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Executável do Switch (%1);;Todos os arquivos (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Carregar arquivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Abrir pasta da ROM extraída</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Pasta inválida selecionada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>A pasta que você selecionou não contém um arquivo &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Arquivo de Switch instalável (*.nca *.nsp *.xci);; Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Instalar arquivos</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n arquivo restante</numerusform><numerusform>%n arquivo(s) restante(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instalando arquivo &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Resultados da instalação</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Para evitar possíveis conflitos, desencorajamos que os usuários instalem os jogos base na NAND.
Por favor, use esse recurso apenas para instalar atualizações e DLCs.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n arquivo(s) instalado(s)
-</numerusform><numerusform>%n file(s) were newly installed
+</numerusform><numerusform>%n arquivos(s) foram recentemente instalados
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n arquivo(s) sobrescrito(s)
@@ -4274,7 +4329,7 @@ Por favor, use esse recurso apenas para instalar atualizações e DLCs.</transla
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n arquivo(s) não instalado(s)
@@ -4282,401 +4337,401 @@ Por favor, use esse recurso apenas para instalar atualizações e DLCs.</transla
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Aplicativo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Arquivo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Atualização de aplicativo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Pacote de firmware (tipo A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Pacote de firmware (tipo B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Atualização de jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>DLC de jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Título delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Selecione o tipo de instalação do NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Selecione o tipo de título como o qual você gostaria de instalar este NCA:
(Na maioria dos casos, o padrão &apos;Jogo&apos; serve bem.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Falha ao instalar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>O tipo de título que você selecionou para o NCA é inválido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Arquivo não encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Arquivo &quot;%1&quot; não encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Conta do yuzu faltando</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Para enviar um caso de teste de compatibilidade de jogo, você precisa entrar com a sua conta do yuzu.&lt;br&gt;&lt;br/&gt;Para isso, vá para Emulação &amp;gt; Configurar... &amp;gt; Rede.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Erro ao abrir URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Não foi possível abrir o URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>Gravando TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>Sobrescrever arquivo do jogador 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Configuração inválida detectada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>O controle portátil não pode ser usado no modo encaixado na base. O Pro Controller será selecionado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation>Erro</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation>O jogo atual não está procurando amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
- <translation type="unfinished"/>
+ <translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
- <translation type="unfinished"/>
+ <translation>O amiibo atual foi removido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Arquivo Amiibo (%1);; Todos os arquivos (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Carregar Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Erro ao abrir arquivo de dados do Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Não foi possível abrir o arquivo de Amiibo &quot;%1&quot; para leitura.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Erro ao ler arquivo de dados de Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Não foi possível ler completamente os dados do Amiibo. O yuzu esperava ler %1 bytes, mas foi capaz de ler apenas %2 bytes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Erro ao carregar dados do Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Não foi possível carregar os dados do Amiibo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Capturar tela</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>Imagem PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>Situação TAS: Rodando %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>Situação TAS: Gravando %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>Situação TAS: Repouso %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>Situação TAS: Inválido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>&amp;Parar de rodar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Iniciar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>Parar G&amp;ravação</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>G&amp;ravação</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Compilando: %n shader(s)</numerusform><numerusform>Compilando: %n shader(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Escala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Velocidade: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Velocidade: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Jogo: %1 FPS (Desbloqueado)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Jogo: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Quadro: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU ALTA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EXTREMA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>ERRO DE GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>VIZINHO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>BILINEAR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>BICÚBICO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>GAUSSIANO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>Sem AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>O jogo que você está tentando carregar precisa que arquivos adicionais do seu Switch sejam extraídos antes de jogá-lo.&lt;br/&gt;&lt;br/&gt;Para saber mais sobre como extrair esses arquivos, visite a seguinte página da wiki: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Extraindo arquivos de sistema e fontes compartilhadas de um Switch&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt; Gostaria de voltar para a lista de jogos? Continuar com a emulação pode resultar em travamentos, dados salvos corrompidos ou outros problemas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>O yuzu não foi capaz de encontrar um arquivo de sistema do Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>O yuzu não foi capaz de encontrar um arquivo de sistema do Switch. %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Arquivo do sistema não encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Arquivo de sistema faltando</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>O yuzu não foi capaz de encontrar as fontes compartilhadas do Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Fontes compartilhadas não encontradas</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Fonte compartilhada faltando</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Erro fatal</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>O yuzu encontrou um erro fatal. Consulte o registro para mais detalhes. Para mais informações sobre como acessar o registro, consulte a seguinte página: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Como enviar o arquivo de registro&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Gostaria de voltar para a lista de jogos? Continuar com a emulação pode resultar em travamentos, dados salvos corrompidos ou outros problemas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Erro fatal encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Confirmar rederivação de chave</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4693,37 +4748,37 @@ e opcionalmente faça cópias de segurança.
Isto excluirá o seus arquivos de chaves geradas automaticamente, e reexecutar o módulo de derivação de chaves.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Faltando fusíveis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation> - Faltando BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - Faltando BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation> - Faltando PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Faltando componentes de derivação</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Chaves de encriptação faltando. &lt;br&gt;Por favor, siga &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;o guia de início rápido&lt;/a&gt; para extrair suas chaves, firmware e jogos. &lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4732,39 +4787,39 @@ Isto pode demorar até um minuto, dependendo
do desempenho do seu sistema.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Derivando chaves</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Selecionar alvo de extração do RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Selecione qual RomFS você quer extrair.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Você deseja mesmo fechar o yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Deseja mesmo parar a emulação? Qualquer progresso não salvo será perdido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4776,38 +4831,38 @@ Deseja ignorar isso e sair mesmo assim?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL não disponível!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>O yuzu não foi compilado com suporte para OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Erro ao inicializar o OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Sua GPU pode não suportar OpenGL, ou você não possui o driver gráfico mais recente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Erro ao inicializar o OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Sua GPU pode não suportar o OpenGL 4.6, ou você não possui os drivers gráficos mais recentes.&lt;br&gt;&lt;br&gt;Renderizador GL:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Sua GPU pode não suportar uma ou mais extensões necessárias do OpenGL. Verifique se você possui a última versão dos drivers gráficos.&lt;br&gt;&lt;br&gt;Renderizador GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensões não suportadas:&lt;br&gt;%2</translation>
</message>
@@ -4969,82 +5024,82 @@ Deseja ignorar isso e sair mesmo assim?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfeito</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>O jogo funciona impecavelmente, sem falhas gráficas ou de áudio. Todas as funcionalidades testadas
do jogo funcionam como deveriam, sem nenhuma solução alternativa necessária.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Ótimo</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>O jogo funciona com leves falhas gráficas ou de áudio e é jogável do início ao fim. Pode exigir
algumas soluções alternativas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Razoável</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>O jogo funciona com graves falhas gráficas ou de áudio, mas é jogável do início ao fim
com o uso de soluções alternativas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Ruim</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>O jogo funciona, só que com problemas significativos nos gráficos ou no áudio. Não é possível progredir em áreas
específicas por conta de tais problemas, mesmo com soluções alternativas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>É impossível jogar o jogo devido a grandes problemas nos gráficos ou no áudio. Não é possível passar da
tela inicial do jogo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Não inicia</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>O jogo trava ou se encerra abruptamente ao se tentar iniciá-lo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Não testado</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Esse jogo ainda não foi testado.</translation>
</message>
@@ -5078,22 +5133,22 @@ tela inicial do jogo.</translation>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Por favor, confirme que esses são os arquivos que deseja instalar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Instalar uma atualização ou DLC irá sobrescrever a instalada anteriormente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Instalar</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Instalar arquivos para a NAND</translation>
</message>
@@ -5126,22 +5181,22 @@ tela inicial do jogo.</translation>
<translation>Tempo estimado 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Carregando...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Carregando shaders %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Iniciando...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Tempo estimado %1</translation>
</message>
@@ -5421,284 +5476,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Títulos instalados no SD</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Títulos instalados na NAND</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Títulos do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Adicionar pasta de jogos</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>Favoritos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[não definido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Direcional %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Eixo %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Botão %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[desconhecido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Esquerda</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Direita</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Baixo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Cima</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation>Círculo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation>Cruz</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation>Quadrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation>Triângulo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>Compartilhar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>Opções</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Botão Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Toque</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Volante</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation>Para trás</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation>Para a frente</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation>Tarefa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[indefinido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation>%1%2%3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[inválido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation>%1%2Direcional %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eixo %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eixo %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2Movimentação %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation>%1%2Botão %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[não utilizado]</translation>
</message>
@@ -5739,7 +5794,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
@@ -5752,7 +5807,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Par de Joycons</translation>
</message>
@@ -5765,7 +5820,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Joycon esquerdo</translation>
</message>
@@ -5778,7 +5833,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Joycon direito</translation>
</message>
@@ -5806,7 +5861,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Portátil</translation>
</message>
@@ -5927,32 +5982,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Controle de GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>Poké Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation>Controle do NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation>Controle do SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation>Controle do Nintendo 64</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>Mega Drive</translation>
</message>
@@ -5997,7 +6052,7 @@ Tente novamente ou entre em contato com o desenvolvedor do software.</translatio
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -6005,17 +6060,17 @@ Tente novamente ou entre em contato com o desenvolvedor do software.</translatio
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Selecione um usuário:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Usuários</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Seletor de perfil</translation>
</message>
@@ -6068,7 +6123,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Pilha de chamadas</translation>
</message>
@@ -6076,17 +6131,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>esperando pelo mutex 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>possui os waiters %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>manejo de proprietário: 0x%1</translation>
</message>
@@ -6094,12 +6149,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>esperando por todos os objetos</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>esperando por um dos seguintes objetos</translation>
</message>
@@ -6107,12 +6162,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>não aguardando pelo thread</translation>
</message>
@@ -6120,112 +6175,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>rodável</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>pausado</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>dormindo</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>esperando para resposta do IPC</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>esperando por objetos</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>aguardando por variável da condição</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>esperando para endereção o árbitro</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>esperando pra suspender o resumo</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>aguardando</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>inicializado</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>terminado</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>desconhecido</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation>PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideal</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>núcleo %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>processador = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>núcleo ideal = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>máscara de afinidade = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>thread id = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>prioridade = %1(atual) / %2(normal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>últimos ticks executados = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>não aguardando para mutex</translation>
</message>
@@ -6233,7 +6288,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>aguardado pelo thread</translation>
</message>
@@ -6241,7 +6296,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>&amp;Árvore de espera</translation>
</message>
diff --git a/dist/languages/pt_PT.ts b/dist/languages/pt_PT.ts
index 571e39158..4f5585ea1 100644
--- a/dist/languages/pt_PT.ts
+++ b/dist/languages/pt_PT.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>A comunicar com o servidor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Toca no canto superior esquerdo &lt;br&gt;do teu touchpad.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Agora toca no canto inferior direito &lt;br&gt; do teu touchpad.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Configuração completa!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -357,7 +357,21 @@ p, li { white-space: pre-wrap; }
<translation>Desativar a verificação do espaço de endereços</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div&gt;Esta opção melhora a velocidade ao depender apenas da semântica da instrução cmpxchg para garantir a segurança de instruções de acesso exclusivo. Observe que isto pode resultar em deadlocks e outras condições de concorrência.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation>Ignorar monitor global</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>As configurações do sistema estão disponíveis apenas quando o jogo não está em execução.</translation>
</message>
@@ -509,11 +523,45 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>Ativar emulação da MMU do anfitrião</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation>Ativar emulação MMU do anfitrião (instruções de memória genéricas)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Esta otimização acelera os acessos de memória exclusiva pelo programa hóspede.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Ativar esta opção faz com que as leituras/escritas da memória exclusiva do hóspede sejam feitas diretamente na memória principal e façam uso do MMU do anfitrião.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Desativar isso força todos os acessos à memória exclusiva a usar a emulação de MMU via software.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation>Ativar emulação da MMU no anfitrião (instruções da memória exclusiva)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Esta otimização acelera os acessos de memória exclusiva pelo programa hóspede.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Ativá-la reduz a sobrecarga de falhas de fastmem dos acessos de memória exclusiva.&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation>Ativar recompilação de instruções de memória exclusiva</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>As configurações do sistema estão disponíveis apenas quando o jogo não está em execução.</translation>
</message>
@@ -671,7 +719,12 @@ p, li { white-space: pre-wrap; }
<translation>Ativar todos os tipos de controles</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation>Desativar o applet da web</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Isto será restaurado automaticamente assim que o yuzu for fechado.</translation>
</message>
@@ -721,78 +774,78 @@ p, li { white-space: pre-wrap; }
<translation>Configuração yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Depurar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Sistema de Ficheiros</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Geral</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>GráficosAvançados</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Teclas de Atalhos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Controlos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Perfis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Rede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Lista de Jogos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Rede</translation>
</message>
@@ -994,7 +1047,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="148"/>
<source>Extended memory layout (6GB DRAM)</source>
- <translation type="unfinished"/>
+ <translation>Layout de memória extendida (6GB DRAM)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="155"/>
@@ -1027,12 +1080,12 @@ p, li { white-space: pre-wrap; }
<translation>Restaurar todas as configurações</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Isto restaura todas as configurações e remove as configurações específicas de cada jogo. As pastas de jogos, perfis de jogos e perfis de controlo não serão removidos. Continuar?</translation>
</message>
@@ -1261,7 +1314,7 @@ p, li { white-space: pre-wrap; }
<translation>Cor de fundo:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Shaders Assembly, apenas NVIDIA)</translation>
</message>
@@ -1829,7 +1882,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Analógico Esquerdo</translation>
</message>
@@ -1923,14 +1976,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1949,7 +2002,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Mais</translation>
</message>
@@ -1962,15 +2015,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2027,230 +2080,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Analógico Direito</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Limpar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[não definido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Alternar pressionamento do botão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>Inverter botão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Inverter eixo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>Definir limite</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Escolha um valor entre 0% e 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation>Definir limite do giroscópio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Mapear analógicos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Após pressionar OK, mova o seu analógico primeiro horizontalmente e depois verticalmente.
Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois horizontalmente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation>Eixo central</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Ponto Morto: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Modificador de Alcance: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Comando Pro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Joycons Duplos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Joycon Esquerdo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Joycon Direito</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Portátil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Controlador de depuração</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>Controle NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>Controle SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>Controle N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>Mega Drive</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Iniciar / Pausar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Direcional de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Abane!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[em espera]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Novo Perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Introduza um novo nome de perfil:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Criar perfil de controlo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>O nome de perfil dado não é válido!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Falha ao criar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Apagar Perfil de Controlo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Falha ao apagar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Carregar perfil de controlo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Falha ao carregar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Guardar perfil de controlo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Falha ao guardar o perfil de controlo &quot;%1&quot;</translation>
</message>
@@ -2298,7 +2351,7 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Configurar</translation>
</message>
@@ -2334,7 +2387,7 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Testar</translation>
</message>
@@ -2349,82 +2402,82 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
<translation>Remover Servidor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Saber Mais&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>O número da porta tem caracteres inválidos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>A porta tem que estar entre 0 e 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>O endereço IP não é válido</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Este servidor UDP já existe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Não é possível adicionar mais de 8 servidores</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Testando</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Configurando</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Teste Bem-Sucedido</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Dados recebidos do servidor com êxito.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Teste Falhou</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Não foi possível receber dados válidos do servidor.&lt;br&gt;Por favor verifica que o servidor está configurado correctamente e o endereço e porta estão correctos.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>Teste UDP ou configuração de calibragem em progresso.&lt;br&gt; Por favor espera que termine.</translation>
</message>
@@ -2452,7 +2505,7 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
<translation>Interface de rede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Nenhum</translation>
</message>
@@ -2505,47 +2558,47 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
<translation>Desenvolvedor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Geral</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Gráficos Avç.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Propriedades</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Usar configuração global (%1)</translation>
</message>
@@ -2563,12 +2616,12 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
<translation>Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Nome da Patch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Versão</translation>
</message>
@@ -2626,7 +2679,7 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
<translation>O gestor de perfis só está disponível apenas quando o jogo não está em execução.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2634,92 +2687,92 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Introduza o Nome de Utilizador</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Utilizadores</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Introduza um nome de utilizador para o novo utilizador:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Introduza um novo nome de utilizador:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Confirmar para eliminar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Estás preste a eliminar o utilizador com o nome &quot;%1&quot;. Tens a certeza?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Definir Imagem de utilizador</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Imagens JPEG (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Error ao eliminar a imagem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Ocorreu um erro ao tentar substituir imagem anterior em: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Erro ao eliminar o arquivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Não é possível eliminar o arquivo existente: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Erro ao criar o diretório de imagens do utilizador</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Não é possível criar o diretório %1 para armazenar imagens do utilizador.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Erro ao copiar a imagem do utilizador</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Não é possível copiar a imagem de %1 para %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Erro no redimensionamento da imagem do usuário</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>Não foi possível redimensionar a imagem</translation>
</message>
@@ -3163,17 +3216,17 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
<translation>As configurações do sistema estão disponíveis apenas quando o jogo não está em execução.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Isto substituirá o seu Switch virtual actual por um novo. Seu Switch virtual actual não será recuperável. Isso pode ter efeitos inesperados nos jogos. Isto pode falhar, se você usar uma gravação de jogo de configuração desatualizado. Continuar?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Aviso</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>ID da Consola: 0x%1</translation>
</message>
@@ -3289,54 +3342,54 @@ Arrasta os pontos para mudar a posição, ou dá duplo-clique nas células da ta
<translation>Apagar Ponto</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Butão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Novo Perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Escreve o nome para o novo perfil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Apagar Perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Apagar perfil %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Renomear Perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Novo nome:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[premir tecla]</translation>
</message>
@@ -3774,893 +3827,895 @@ Arrasta os pontos para mudar a posição, ou dá duplo-clique nas células da ta
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Dados anônimos são coletados&lt;/a&gt;para ajudar a melhorar o yuzu.&lt;br/&gt;&lt;br/&gt;Gostaria de compartilhar seus dados de uso conosco?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetria</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>A Carregar o Web Applet ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Desativar Web Applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>Desativar o Web Applet fará com que ele não apareça novamente até o final da sessão emulada. Isto pode causar comportamento inesperado e só deve ser usado com Super Mario 3D All-Stars. Tem a certeza que quer desativar o Web Applet?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation>A desativação do applet da web pode causar comportamento inesperado e deve apenas ser usada com Super Mario 3D All-Stars. Você deseja mesmo desativar o applet da web?
+(Ele pode ser reativado nas configurações de depuração.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>Quantidade de shaders a serem construídos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>O atualmente multiplicador de escala de resolução selecionado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Velocidade da emulação actual. Valores acima ou abaixo de 100% indicam que a emulação está sendo executada mais depressa ou mais devagar do que a Switch</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Quantos quadros por segundo o jogo está exibindo de momento. Isto irá variar de jogo para jogo e de cena para cena.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tempo gasto para emular um frame da Switch, sem contar o a limitação de quadros ou o v-sync. Para emulação de velocidade máxima, esta deve ser no máximo 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>DOCK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Limpar arquivos recentes</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Continuar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Pausa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation>yuzu está rodando um jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Aviso de Formato de Jogo Desactualizado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Você está usando o formato de directório ROM desconstruído para este jogo, que é um formato desactualizado que foi substituído por outros, como NCA, NAX, XCI ou NSP. Os directórios de ROM não construídos não possuem ícones, metadados e suporte de actualização.&lt;br&gt;&lt;br&gt;Para uma explicação dos vários formatos de Switch que o yuzu suporta,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;Verifique a nossa Wiki&lt;/a&gt;. Esta mensagem não será mostrada novamente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Erro ao carregar o ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>O formato do ROM não é suportado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Ocorreu um erro ao inicializar o núcleo do vídeo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu encontrou um erro enquanto rodando o núcleo de vídeo. Normalmente isto é causado por drivers de GPU desatualizados, incluindo integrados. Por favor veja o registro para mais detalhes. Para mais informações em acesso ao registro por favor veja a seguinte página: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Como fazer envio de arquivo de registro&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Erro ao carregar a ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Por favor, siga &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;a guia de início rápido do yuzu&lt;/a&gt; para fazer o redespejo dos seus arquivos.&lt;br&gt;Você pode consultar a wiki do yuzu&lt;/a&gt; ou o Discord do yuzu&lt;/a&gt; para obter ajuda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Ocorreu um erro desconhecido. Por favor, veja o log para mais detalhes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Save Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Mod Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Erro ao abrir a pasta %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>A Pasta não existe!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Erro ao abrir os Shader Cache transferíveis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Falha ao criar o diretório de cache de shaders para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Conteúdos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Actualização</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Remover Entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Remover Jogo Instalado %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Removido com Sucesso</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>Removida a instalação do jogo base com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Erro ao Remover %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>O jogo base não está instalado no NAND e não pode ser removido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Removida a actualização instalada com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Não há actualização instalada neste título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Não há DLC instalado neste título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Removido DLC instalado %1 com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Apagar o cache de shaders transferível do OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Apagar o cache de shaders transferível do Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Apagar todos os caches de shaders transferíveis?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Remover Configuração Personalizada do Jogo?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Remover Ficheiro</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Error ao Remover Cache de Shader Transferível</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>O Shader Cache para este titulo não existe.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Removido a Cache de Shader Transferível com Sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Falha ao remover a cache de shader transferível.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Erro ao remover os caches de shaders transferíveis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Os caches de shaders transferíveis foram removidos com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Falha ao remover o diretório do cache de shaders transferível.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Erro ao Remover Configuração Personalizada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Não existe uma configuração personalizada para este titúlo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Removida a configuração personalizada do jogo com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Falha ao remover a configuração personalizada do jogo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>A Extração de RomFS falhou!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Houve um erro ao copiar os arquivos RomFS ou o usuário cancelou a operação.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Cheio</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Esqueleto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Selecione o modo de despejo do RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Por favor, selecione a forma como você gostaria que o RomFS fosse despejado&lt;br&gt;Full irá copiar todos os arquivos para o novo diretório enquanto&lt;br&gt;skeleton criará apenas a estrutura de diretórios.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>Não há espaço suficiente em %1 para extrair o RomFS. Por favor abra espaço ou selecione um diretório diferente em Emulação &gt; Configurar &gt; Sistema &gt; Sistema de arquivos &gt; Extrair raiz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Extraindo o RomFS ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Extração de RomFS Bem-Sucedida!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>A operação foi completa com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Erro ao abrir %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Selecione o Diretório</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Propriedades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>As propriedades do jogo não puderam ser carregadas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Executáveis Switch (%1);;Todos os Ficheiros (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Carregar Ficheiro</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Abrir o directório ROM extraído</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Diretório inválido selecionado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>O diretório que você selecionou não contém um arquivo &apos;Main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Ficheiro Switch Instalável (*.nca *.nsp *.xci);;Arquivo de Conteúdo Nintendo (*.nca);;Pacote de Envio Nintendo (*.nsp);;Imagem de Cartucho NX (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Instalar Ficheiros</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instalando arquivo &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Instalar Resultados</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Para evitar possíveis conflitos, desencorajamos que os utilizadores instalem os jogos base na NAND.
Por favor, use esse recurso apenas para instalar atualizações e DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Aplicação do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Arquivo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Atualização do aplicativo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Pacote de Firmware (Tipo A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Pacote de Firmware (Tipo B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Actualização do Jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>DLC do Jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Título Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Selecione o tipo de instalação do NCA ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Por favor, selecione o tipo de título que você gostaria de instalar este NCA como:
(Na maioria dos casos, o padrão &apos;Jogo&apos; é suficiente).</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Falha na instalação</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>O tipo de título que você selecionou para o NCA é inválido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Arquivo não encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Arquivo &quot;%1&quot; não encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Conta Yuzu Ausente</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Para enviar um caso de teste de compatibilidade de jogos, você deve vincular sua conta yuzu.&lt;br&gt;&lt;br/&gt;Para vincular sua conta yuzu, vá para Emulação &amp;gt; Configuração &amp;gt; Rede.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Erro ao abrir URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Não foi possível abrir o URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>Gravando TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>Sobrescrever arquivo do jogador 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Configação inválida detectada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>O comando portátil não pode ser usado no modo encaixado na base. O Pro controller será selecionado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation>Erro</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation>O jogo atual não está procurando amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
- <translation type="unfinished"/>
+ <translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
- <translation type="unfinished"/>
+ <translation>O amiibo atual foi removido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Arquivo Amiibo (%1);; Todos os Arquivos (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Carregar Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Erro ao abrir o arquivo de dados do Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Não é possível abrir o arquivo Amiibo &quot;%1&quot; para leitura.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Erro ao ler o arquivo de dados do Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Não é possível ler completamente os dados do Amiibo. Espera-se que leia %1 bytes, mas só conseguiu ler %2 bytes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Erro ao carregar dados do Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Não foi possível carregar os dados do Amiibo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Captura de Tela</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>Imagem PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>Situação TAS: Rodando %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>Situação TAS: Gravando %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>Situação TAS: Repouso %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>Situação TAS: Inválido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>&amp;Parar de rodar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Começar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>Parar G&amp;ravação</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>G&amp;ravação</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Escala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Velocidade: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Velocidade: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Jogo: %1 FPS (Desbloqueado)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Jogo: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Quadro: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU ALTA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EXTREMA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>ERRO DE GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>VIZINHO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>BILINEAR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>BICÚBICO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>GAUSSIANO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>Sem AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>O jogo que você está tentando carregar requer arquivos adicionais do seu Switch para serem despejados antes de jogar.&lt;br/&gt;&lt;br/&gt;Para obter mais informações sobre como despejar esses arquivos, consulte a seguinte página da wiki:&lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Despejando arquivos do sistema e as fontes compartilhadas de uma consola Switch&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Você gostaria de regressar para a lista de jogos? Continuar a emulação pode resultar em falhas, dados de salvamento corrompidos ou outros erros.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>O yuzu não conseguiu localizar um arquivo de sistema do Switch. % 1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>O yuzu não conseguiu localizar um arquivo de sistema do Switch: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Arquivo do Sistema Não Encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Arquivo de Sistema em falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu não conseguiu localizar as fontes compartilhadas do Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Fontes compartilhadas não encontradas</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Fontes compartilhadas em falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Erro fatal</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu encontrou um erro fatal, por favor veja o registro para mais detalhes. Para mais informações sobre como acessar o registro, por favor, veja a seguinte página:&lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Como carregar o arquivo de registro&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Você gostaria de regressar para a lista de jogos? Continuar a emulação pode resultar em falhas, dados de salvamento corrompidos ou outros erros.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Ocorreu um Erro fatal</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Confirme a rederivação da chave</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4677,37 +4732,37 @@ e opcionalmente faça backups.
Isso irá excluir os seus arquivos de chave gerados automaticamente e executará novamente o módulo de derivação de chave.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Fusíveis em Falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- BOOT0 em Falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- BCPKG2-1-Normal-Main em Falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation>- PRODINFO em Falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Componentes de Derivação em Falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Chaves de encriptação faltando. &lt;br&gt;Por favor, siga &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;o guia de início rápido&lt;/a&gt; para extrair suas chaves, firmware e jogos. &lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4716,39 +4771,39 @@ Isto pode demorar até um minuto, dependendo
do desempenho do seu sistema.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Derivando Chaves</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Selecione o destino de despejo do RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Por favor, selecione qual o RomFS que você gostaria de despejar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Tem a certeza que quer fechar o yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Tem a certeza de que quer parar a emulação? Qualquer progresso não salvo será perdido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4760,38 +4815,38 @@ Deseja ignorar isso e sair mesmo assim?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL não está disponível!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu não foi compilado com suporte OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Erro ao inicializar OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>O seu GPU pode não suportar OpenGL, ou não tem os drivers gráficos mais recentes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Erro ao inicializar o OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>O teu GPU pode não suportar OpenGL 4.6, ou não tem os drivers gráficos mais recentes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Sua GPU pode não suportar uma ou mais extensões necessárias do OpenGL. Verifique se você possui a última versão dos drivers gráficos.&lt;br&gt;&lt;br&gt;Renderizador GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensões não suportadas:&lt;br&gt;%2</translation>
</message>
@@ -4953,82 +5008,82 @@ Deseja ignorar isso e sair mesmo assim?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfeito</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>O Jogo Funciona na Perfeição sem falhas de áudio ou gráficas, todas as funcionalidades testadas funcionam como planeadas sem
quaisquer soluções alternativas necessárias.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Ótimo</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>O Jogo funciona com pequenas falhas gráficas ou de áudio e pode ser jogado do principio ao fim. Pode exigir algumas
soluções alternativas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Ok</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>O Jogo funciona com grandes falhas gráficas ou de áudio, mas o jogo é jogável do principio ao fim com
soluções alternativas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Mau</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Jogo Funcional, mas com grandes falhas gráficas ou de áudio. Incapaz de progredir em áreas específicas devido a falhas
mesmo com soluções alternativas</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Introdução / Menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>O Jogo não é jogável devido a grandes falhas gráficas ou de áudio. Não é possível passar da Tela
Inicial</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Não Inicia</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>O jogo trava ao tentar iniciar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Não Testado</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>O jogo ainda não foi testado.</translation>
</message>
@@ -5062,22 +5117,22 @@ Inicial</translation>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Por favor confirma que estes são os ficheiros que desejas instalar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Instalar uma Actualização ou DLC irá substituir a instalação anterior.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Instalar</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Instalar Ficheiros no NAND</translation>
</message>
@@ -5110,22 +5165,22 @@ Inicial</translation>
<translation>Tempo Estimado 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>A Carregar...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>A Carregar Shaders %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>A iniciar...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Tempo Estimado %1</translation>
</message>
@@ -5405,284 +5460,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Títulos SD instalados</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Títulos NAND instalados</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Títulos do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Adicionar novo diretório de jogos</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>Favoritos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[não configurado]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Hat %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Eixo %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Botão %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[Desconhecido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Esquerda</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Direita</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Baixo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Cima</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Começar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation>Círculo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation>Cruz</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation>Quadrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation>Triângulo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>Compartilhar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>Opções</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Toque</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Volante</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation>Para trás</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation>Para a frente</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation>Tarefa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[indefinido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation>%1%2%3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[inválido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation>%1%2Direcional %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eixo %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eixo %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2Movimentação %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation>%1%2Botão %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[sem uso]</translation>
</message>
@@ -5723,7 +5778,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Comando Pro</translation>
</message>
@@ -5736,7 +5791,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Par de Joycons</translation>
</message>
@@ -5749,7 +5804,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Joycon Esquerdo</translation>
</message>
@@ -5762,7 +5817,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Joycon Direito</translation>
</message>
@@ -5790,7 +5845,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Portátil</translation>
</message>
@@ -5911,32 +5966,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Controlador de depuração</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>Poké Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation>Controle do NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation>Controle do SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation>Controle do Nintendo 64</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>Mega Drive</translation>
</message>
@@ -5981,7 +6036,7 @@ Tente novamente ou entre em contato com o desenvolvedor do software.</translatio
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5989,17 +6044,17 @@ Tente novamente ou entre em contato com o desenvolvedor do software.</translatio
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Selecione um usuário:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Utilizadores</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Seleccionador de Perfil</translation>
</message>
@@ -6052,7 +6107,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Pilha de Chamadas</translation>
</message>
@@ -6060,17 +6115,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>esperando por mutex 0x% 1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>has waiters: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>owner handle: 0x%1</translation>
</message>
@@ -6078,12 +6133,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>esperando por todos os objetos</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>esperando por todos os objectos</translation>
</message>
@@ -6091,12 +6146,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>esperado por nenhuma thread</translation>
</message>
@@ -6104,112 +6159,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>executável</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>pausado</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>dormindo</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>aguardando resposta do IPC</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>esperando por objectos</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>A espera da variável de condição</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>esperando pelo árbitro de endereço</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>esperando pra suspender o resumo</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>aguardando</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>inicializado</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>terminado</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>desconhecido</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation>PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideal</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>núcleo %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>processador = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>núcleo ideal =% 1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>máscara de afinidade =% 1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>id do segmento =% 1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>prioridade =%1(atual) / %2(normal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>últimos tiques em execução =%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>não esperar por mutex</translation>
</message>
@@ -6217,7 +6272,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>esperado por thread</translation>
</message>
@@ -6225,7 +6280,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>&amp;Árvore de espera</translation>
</message>
diff --git a/dist/languages/ru_RU.ts b/dist/languages/ru_RU.ts
index 49fc85660..eb772beec 100644
--- a/dist/languages/ru_RU.ts
+++ b/dist/languages/ru_RU.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Подключение к серверу...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Нажмите в верхнем левом углу &lt;br&gt;вашего тачпада.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Теперь нажмите в нижнем правом углу &lt;br&gt; вашего тачпада.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Настройка завершена!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>ОК</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -359,7 +359,19 @@ p, li { white-space: pre-wrap; }
<translation>Отключить проверку адресного пространства</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Настройки ЦП недоступны, пока запущена игра.</translation>
</message>
@@ -519,11 +531,38 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>Включить эмуляцию MMU хоста</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Настройки ЦП недоступны, пока запущена игра.</translation>
</message>
@@ -681,7 +720,12 @@ p, li { white-space: pre-wrap; }
<translation>Включить все типы контроллеров</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Это будет автоматически сброшено после закрытия yuzu.</translation>
</message>
@@ -731,78 +775,78 @@ p, li { white-space: pre-wrap; }
<translation>Параметры yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Звук</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>ЦП</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Отладка</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Файловая система</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Общие</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Графика</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>ГрафикаДополительно</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Горячие клавиши</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Управление</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Профили</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Сеть</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Система</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Список игр</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Веб</translation>
</message>
@@ -1024,7 +1068,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="176"/>
<source>Mute audio when in background</source>
- <translation type="unfinished"/>
+ <translation>Заглушить звук в фоновом режиме</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="183"/>
@@ -1037,12 +1081,12 @@ p, li { white-space: pre-wrap; }
<translation>Сбросить все настройки</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Это сбросит все настройки и удалит все конфигурации под отдельные игры. При этом не будут удалены пути для игр, профили или профили ввода. Продолжить?</translation>
</message>
@@ -1237,7 +1281,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="432"/>
<source>AMD FidelityFX™️ Super Resolution (Vulkan Only)</source>
- <translation type="unfinished"/>
+ <translation>AMD FidelityFX™️ Super Resolution (Только Vulkan)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="458"/>
@@ -1271,7 +1315,7 @@ p, li { white-space: pre-wrap; }
<translation>Фоновый цвет:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (ассемблерные шейдеры, только для NVIDIA)</translation>
</message>
@@ -1447,7 +1491,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="351"/>
<source>Conflicting Button Sequence</source>
- <translation type="unfinished"/>
+ <translation>Конфликтующее Сочетание Клавиш</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="352"/>
@@ -1839,7 +1883,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Левый Стик</translation>
</message>
@@ -1933,14 +1977,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1959,7 +2003,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Плюс</translation>
</message>
@@ -1972,15 +2016,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2037,230 +2081,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Правый Стик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Очистить</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[не задано]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Переключить кнопку</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>Инвертировать кнопку</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Инвертировать оси</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>Установить порог</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Выберите значение между 0% и 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Задать Аналоговый Стик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>После нажатия на ОК, двигайте ваш джойстик горизонтально, а затем вертикально.
Чтобы инвертировать оси, сначала двигайте ваш джойстик вертикально, а затем горизонтально.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
- <translation type="unfinished"/>
+ <translation>Центрировать оси</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Мёртвая зона: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Диапазон Модификатора: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Контроллер Pro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Двойные Joycon&apos;ы</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Левый Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Правый Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Портативный</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Контроллер GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>Контроллер NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>Контроллер SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>Контроллер N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Старт / Пауза</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Управляющий Стик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Стик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Встряхните!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[ожидание]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Новый Профиль</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Введите имя профиля:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Создать Профиль Управления</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>Заданное имя профиля недействительно!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Не удалось создать профиль управления &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Удалить Профиль Управления</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Не удалось удалить профиль управления &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Загрузить профиль управления</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Не удалось загрузить профиль управления &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Сохранить Профиль Управления</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Не удалось сохранить профиль управления &quot;%1&quot;</translation>
</message>
@@ -2308,7 +2352,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Настроить</translation>
</message>
@@ -2344,7 +2388,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Тест</translation>
</message>
@@ -2359,82 +2403,82 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Удалить Сервер</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Узнать Больше&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Номер порта содержит недопустимые символы</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>Порт должен быть в районе от 0 до 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>IP-адрес недействителен</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Этот UDP сервер уже существует</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Невозможно добавить более 8 серверов</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Тестирование</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Настройка</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Тест Успешен</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Успешно получена информация с сервера</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Тест Провален</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Не удалось получить действительные данные с сервера.&lt;br&gt;Убедитесь, что сервер правильно настроен, а также проверьте адрес и порт.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>Тест UDP или калибрация в процессе.&lt;br&gt;Пожалуйста, подождите завершения.</translation>
</message>
@@ -2462,7 +2506,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Интерфейс Сети</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Нет</translation>
</message>
@@ -2515,47 +2559,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Разработчик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Дополнения</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Общие</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Система</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>ЦП</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Графика</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Расш. Графика</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Звук</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Свойства</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Использовать глобальную настройку (%1)</translation>
</message>
@@ -2573,12 +2617,12 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Дополнения</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Название Патча</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Версия</translation>
</message>
@@ -2636,7 +2680,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Управление профилями недоступно пока запущена игра.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2644,92 +2688,92 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Введите Имя Пользователя</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Пользователи</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Введите имя пользователя для нового профиля:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Введите новое имя пользователя:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Подтвердите Удаление</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Вы собираетесь удалить пользователя &quot;%1&quot;. Вы уверены?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Выберите Изображение для Пользователя</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Изображения JPEG (*.jpg, *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Ошибка при удалении изображения</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Ошибка при попытке перезаписи предыдущего изображения в: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Ошибка при удалении файла</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Не удалось удалить существующий файл: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Ошибка при создании папки пользовательских изображений</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Не получилось создать папку %1 для хранения изображений пользователя.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Ошибка при копировании изображения пользователя</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Не получилось скопировать изображение из %1 в %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Ошибка при изменении размера изображения пользователя</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>Невозможно изменить размер изображения</translation>
</message>
@@ -3173,17 +3217,17 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Настройки системы доступны только тогда, когда игра не запущена.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Это заменит ваш текущий виртуальный Switch новым. Ваш текущий виртуальный Switch будет безвозвратно потерян. Это может иметь неожиданные последствия в играх. Может не сработать, если вы используете устаревшую конфигурацию сохраненных игр. Продолжить?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Внимание</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>Идентификатор Консоли: 0x%1</translation>
</message>
@@ -3299,54 +3343,54 @@ Drag points to change position, or double-click table cells to edit values.</sou
<translation>Удалить Точку</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Кнопка</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Новый Профиль</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Введите имя вашего нового профиля.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Удалить Профиль</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Удалить профиль %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Переименовать Профиль</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Новое название:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[нажмите кнопку]</translation>
</message>
@@ -3784,481 +3828,482 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Анонимные данные собираются&lt;/a&gt; для улучшения yuzu. &lt;br/&gt;&lt;br/&gt;Хотели бы вы делиться данными об использовании с нами?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Телеметрия</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Загрузка Веб-Апплета...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Отключить Веб-Апплет</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>Отключение веб-апплета приведет к тому, что он больше не будет появляться до конца текущей сессии эмуляции. Это может привести к неожиданному поведению и должно использоваться только в Super Mario 3D All-Stars. Вы уверены, что хотите отключить веб-апплет?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>Количество создаваемых шейдеров на данный момент</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Текущий выбранный множитель масштабирования разрешения.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Текущая скорость эмуляции. Значения выше или ниже 100% указывают на то, что эмуляция идет быстрее или медленнее, чем на Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Количество кадров в секунду в данный момент. Значение будет меняться от игры к игре и от сцене к сцене.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Время, которое нужно для эмуляции 1 кадра Switch, не принимая во внимание ограничение FPS или v-sync. Для полноскоростной эмуляции значение должно быть не больше 16,67 мс.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>ДОК</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Очистить Недавние Файлы</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Продолжить</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Пауза</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Предупреждение Устаревший Формат Игры</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Для этой игры вы используете разархивированный формат ROM&apos;а, который является устаревшим и был заменен другими, такими как NCA, NAX, XCI или NSP. В разархивированных каталогах ROM&apos;а отсутствуют иконки, метаданные и поддержка обновлений. &lt;br&gt;&lt;br&gt;Для получения информации о различных форматах Switch, поддерживаемых yuzu, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;просмотрите нашу вики&lt;/a&gt;. Это сообщение больше не будет отображаться.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Ошибка при загрузке ROM&apos;а!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>Формат ROM&apos;а не поддерживается.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Произошла ошибка при инициализации видеоядра.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Ошибка при загрузке ROM&apos;а! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Пожалуйста, следуйте &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;краткому руководству пользователя yuzu&lt;/a&gt; чтобы пере-дампить ваши файлы&lt;br&gt;Вы можете обратиться к вики yuzu&lt;/a&gt; или Discord yuzu&lt;/a&gt; для помощи.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Произошла неизвестная ошибка. Пожалуйста, проверьте лог для подробностей.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-х битный)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-х битный)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Данные Сохранений</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Данные Модов</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Ошибка при Открытии Папки %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Папка не существует!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Ошибка при открытии переносного кэша шейдеров</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Не удалось создать папку кэша шейдеров для этой игры.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Содержание</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Обновление</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>Загружаемый Контент</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Удалить Запись</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Удалить Установленную Игру %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Успешно Удалено</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>Установленная базовая игра успешно удалена.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Ошибка при Удалении %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Базовая игра не установлена в NAND и не может быть удалена.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Установленное обновление успешно удалено.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Для этой игры нету обновлений.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Для этой игры нет установленного загружаемого контента.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Успешно удалено %1 загружаемого контента.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Удалить переносной кэш шейдеров OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Удалить переносной кэш шейдеров Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Удалить весь переносной кэш шейдеров?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Удалить Пользовательскую Настройку Игры?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Удалить Файл</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Ошибка при удалении переносного кэша шейдеров</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>Кэш шейдеров для этой игры не существует.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Переносной кэш шейдеров успешно удалён.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Не удалось удалить переносной кэш шейдеров.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Ошибка при удалении переносного кэша шейдеров</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Переносной кэш шейдеров успешно удален.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Ошибка при удалении папки переносного кэша шейдеров.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Ошибка при Удалении Пользовательской Настройки</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Пользовательская настройка для этой игры не существует.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Пользовательская настройка игры успешно удалена.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Не удалось удалить пользовательскую настройку игры.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>Не Удалось Извлечь RomFS!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Произошла ошибка при копировании файлов RomFS или пользователь отменил операцию.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Полный</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Структура</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Выберите Режим Дампа RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Пожалуйста, выберите, как вы хотите выполнить дамп RomFS. &lt;br&gt;Полный скопирует все файлы в новую папку, в то время как &lt;br&gt;структура создаст только структуру папок.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>В %1 недостаточно свободного места для извлечения RomFS. Пожалуйста, освободите место или выберите другую папку для дампа в Эмуляция &gt; Настройка &gt; Система &gt; Файловая система &gt; Корень Дампа</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Извлечение RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Извлечение RomFS Прошло Успешно!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>Операция выполнена.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Ошибка Открытия %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Выбрать папку</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Свойства</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Не удалось загрузить свойства игры.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Исполняемый файл Switch (%1);;Все файлы (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Загрузить файл</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Открыть папку извлечённого ROM&apos;а</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Выбрана недопустимая папка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Папка, которую вы выбрали, не содержит «основного» файла.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Устанавливаемый Файл Switch (*.nca, *.nsp, *.xci);;Архив Контента Nintendo (*.nca);;Пакет Подачи Nintendo (*.nsp);;Образ Картриджа NX (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Установить Файлы</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation><numerusform>Остался %n файл</numerusform><numerusform>Осталось %n файл(ов)</numerusform><numerusform>Осталось %n файл(ов)</numerusform><numerusform>Осталось %n файл(ов)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Установка файла &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Установить Результаты</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Чтобы избежать возможных конфликтов, мы не рекомендуем пользователям устанавливать базовые игры на NAND.
Пожалуйста, используйте эту функцию только для установки обновлений и DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n файл был недавно установлен
@@ -4268,7 +4313,7 @@ Please, only use this feature to install updates and DLC.</source>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n файл был перезаписан
@@ -4278,7 +4323,7 @@ Please, only use this feature to install updates and DLC.</source>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n файл(ов) не удалось установить
@@ -4288,401 +4333,401 @@ Please, only use this feature to install updates and DLC.</source>
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Системное Приложение</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Системный Архив</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Обновление Системного Приложения</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Пакет Прошивки (Тип А)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Пакет Прошивки (Тип Б)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Игра</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Обновление Игры</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Загружаемый Контент Игры</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Дельта-Титул</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Выберите Тип Установки NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Пожалуйста, выберите тип приложения, который вы хотите установить для этого NCA:
(В большинстве случаев, подходит стандартный выбор «Игра».)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Ошибка Установки</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Тип приложения, который вы выбрали для NCA, недействителен.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Файл не найден</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Файл &quot;%1&quot; не найден</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>ОК</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Отсутствует Аккаунт yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Чтобы отправить отчет о совместимости игры, необходимо привязать свою учетную запись yuzu.&lt;br&gt;&lt;br/&gt;Чтобы привязать свою учетную запись yuzu, перейдите в раздел Эмуляция &amp;gt; Настройка &amp;gt; Веб.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Ошибка при открытии URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Не удалось открыть URL: &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>Запись TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>Перезаписать файл игрока 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Обнаружена недопустимая конфигурация</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Портативный контроллер не может быть использован в режиме док-станции. Будет выбран контроллер Pro.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
- <translation type="unfinished"/>
+ <translation>Ошибка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Файл Amiibo (%1);; Все Файлы (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Загрузить Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Ошибка открытия файла данных Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Невозможно открыть файл Amiibo &quot;%1&quot; для чтения.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Ошибка чтения файла данных Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Невозможно полностью прочитать данные Amiibo. Ожидалось прочитать %1 байт, но удалось прочитать только %2 байт.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Ошибка загрузки данных Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Невозможно загрузить данные Amiibo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Сделать Скриншот</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>Изображение PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>Состояние TAS: Выполняется %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>Состояние TAS: Записывается %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>Состояние TAS: Простой %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>Состояние TAS: Неверный</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>&amp;Остановка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Начать</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>Закончить з&amp;апись</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>З&amp;апись</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Постройка: %n шейдер(ов)</numerusform><numerusform>Постройка: %n шейдер(ов)</numerusform><numerusform>Постройка: %n шейдер(ов)</numerusform><numerusform>Постройка: %n шейдер(ов)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Масштаб: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Скорость: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Скорость: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Игра: %1 FPS (Неограниченно)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Игра: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Кадр: %1 мс</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>ГП НОРМАЛЬНО</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>ГП ВЫСОКО</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>ГП ЭКСТРИМ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>ГП ОШИБКА</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>БЛИЖАЙШИЙ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>БИЛИНЕЙНЫЙ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>БИКУБИЧЕСКИЙ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>ГАУСС</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>БЕЗ СГЛАЖИВАНИЯ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Игра, которую вы пытаетесь загрузить, требует, чтобы дополнительные файлы были сдамплены с вашего Switch перед началом игры. &lt;br/&gt;&lt;br/&gt;Для получения дополнительной информации о дампе этих файлов см. следующую вики: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Дамп Системных Архивов и Общих Шрифтов с консоли&lt;/a&gt;. &lt;br/&gt;&lt;br/&gt;Хотите вернуться к списку игр? Продолжение эмуляции может привести к сбоям, повреждению сохраненных данных или другим ошибкам.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu не удалось найти системный архив Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu не удалось найти системный архив Switch: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Системный Архив Не Найден</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Отсутствует Системный Архив</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu не удалось найти общие шрифты Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Общие Шрифты Не Найдены</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Общие Шрифты Отсутствуют</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Фатальная Ошибка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu столкнулся с фатальной ошибкой, смотрите подробности в журнале. Информацию о доступе к журналу можно найти на этой странице: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Как Отправить Файл Журнала&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Желаете вернуться к списку игр? Продолжение эмуляции может привести к сбоям, повреждению сохраненных данных или другим ошибкам.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Произошла Фатальная Ошибка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Подтвердите Перерасчет Ключа</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4699,37 +4744,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
Это удалит ваши автоматически сгенерированные файлы ключей и повторно запустит модуль расчета ключей.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Отсутствуют предохранители</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- Отсутствует BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- Отсутствует BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation>- Отсутствует PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Компоненты Расчета Отсутствуют</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Ключи шифрования отсутствуют. &lt;br&gt;Пожалуйста, следуйте &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;краткому руководству пользователя yuzu&lt;/a&gt;, чтобы получить ключи, прошивку и игры.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4738,39 +4783,39 @@ on your system&apos;s performance.</source>
от производительности вашей системы.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Получение Ключей</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Выберите Цель для Дампа RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Пожалуйста, выберите, какой RomFS вы хотите сдампить.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Вы уверены, что хотите закрыть yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Вы уверены, что хотите остановить эмуляцию? Любой несохраненный прогресс будет потерян.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4782,38 +4827,38 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL не доступен!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu не был скомпилирован с поддержкой OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Ошибка при инициализации OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Ваш ГП может не поддерживать OpenGL, или у вас установлен устаревший графический драйвер.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Ошибка при инициализации OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Ваш ГП может не поддерживать OpenGL 4.6, или у вас установлен устаревший графический драйвер.&lt;br&gt;&lt;br&gt;Рендерер GL:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Ваш ГП может не поддерживать одно или несколько требуемых расширений OpenGL. Пожалуйста, убедитесь в том, что у вас установлен последний графический драйвер.&lt;br&gt;&lt;br&gt;Рендерер GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Неподдерживаемые расширения:&lt;br&gt;%2</translation>
</message>
@@ -4975,82 +5020,82 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Идеально</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Игра идёт безупречно, без звуковых или графических артефактов, все протестированные функции работают без
обходных путей.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Отлично</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Игра работает с небольшими графическими или звуковыми артефактами и может быть пройдена от начала до конца. Могут потребоваться
обходные пути.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Нормально</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>Игра работает с существенными графическими или звуковыми артефактами, но с
обходными путями может быть пройдена.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Плохо</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Игра работает, но с существенными графическими или звуковыми артефактами. В некоторых зонах нельзя продвинуться
даже с обходными путями.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Вступление/Меню</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>В игру невозможно играть из-за графических или звуковых артефактов. Невозможно продвинуться дальше Стартового
Экрана.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Не Запускается</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>Игра падает при запуске.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Не Проверено</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Игру ещё не проверяли на совместимость.</translation>
</message>
@@ -5084,22 +5129,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Пожалуйста, убедитесь что это те файлы, что вы хотите установить.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Установка Обновления или Загружаемого Контента перезапишет ранее установленное.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Установить</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Установить Файлы в NAND</translation>
</message>
@@ -5132,22 +5177,22 @@ Screen.</source>
<translation>Примерное время 5м 4с</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Загрузка...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Загрузка Шейдеров %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Запуск...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Примерное Время %1</translation>
</message>
@@ -5427,284 +5472,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Установленные SD Игры</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Установленные NAND Игры</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Системные Игры</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Добавить новую папку с играми</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>Избранные</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[не задано]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Крестовина %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Ось %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Кнопка %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[неизвестно]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Влево</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Вправо</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Вниз</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Вверх</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation>Круг</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation>Крестик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation>Квадрат</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation>Треугольник</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>Share</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>Options</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Домой</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Нажатие</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
- <translation type="unfinished"/>
+ <translation>Колесо мыши</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
- <translation type="unfinished"/>
+ <translation>Назад</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
- <translation type="unfinished"/>
+ <translation>Вперёд</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
- <translation type="unfinished"/>
+ <translation>Дополнительная</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[не определено]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[недопустимо]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation>%1%2Шляпа %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation>%1%2Ось %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Ось %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2Движение %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation>%1%2Кнопка %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[не используется]</translation>
</message>
@@ -5745,7 +5790,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Контроллер Pro</translation>
</message>
@@ -5758,7 +5803,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Двойные Joycon&apos;ы</translation>
</message>
@@ -5771,7 +5816,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Левый Joycon</translation>
</message>
@@ -5784,7 +5829,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Правый Joycon</translation>
</message>
@@ -5812,7 +5857,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Портативный</translation>
</message>
@@ -5933,32 +5978,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Контроллер GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation>Контроллер NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation>Контроллер SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation>Контроллер N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
@@ -6003,7 +6048,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -6011,17 +6056,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Выберите пользователя:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Пользователи</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Выбор Профиля</translation>
</message>
@@ -6074,7 +6119,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Стэк вызовов</translation>
</message>
@@ -6082,17 +6127,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>ожидание мьютекса 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>ожидающие: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>ссылка на владельца: 0x%1</translation>
</message>
@@ -6100,12 +6145,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>в ожидании всех объектов</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>в ожидании одного из объектов</translation>
</message>
@@ -6113,12 +6158,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>не ожидается потоком</translation>
</message>
@@ -6126,112 +6171,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>запускаемый</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>приостановлен</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>сон</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>ожидание ответа IPC</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>ожидание объектов</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>ожидание условной переменной </translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>ожидание адресного арбитра</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>ожидание приостановки возобновления</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>ожидание</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>инициализированный</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>прекращено</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>неизвестно</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>идеально</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>ядро %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>процессор = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>идеальное ядро = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>маска сходства = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>id потока = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>приоритет = %1(текущий) / %2(обычный)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>последние тики = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>не ожидает мьютекс</translation>
</message>
@@ -6239,7 +6284,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>ожидается потоком</translation>
</message>
@@ -6247,7 +6292,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>&amp;Дерево Ожидания</translation>
</message>
diff --git a/dist/languages/sv.ts b/dist/languages/sv.ts
index be5bb5377..f149939e5 100644
--- a/dist/languages/sv.ts
+++ b/dist/languages/sv.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Kommunicerar med servern...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Avbryt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Tryck på det övre vänstra hörnet &lt;br&gt;på pekplattan.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Tryck nu på det nedre högra hörnet &lt;br&gt; på pekplattan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Konfiguration slutförd!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -349,7 +349,19 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU-inställningar är endast tillgängliga när spel inte körs.</translation>
</message>
@@ -505,11 +517,38 @@ avgjord kod.&lt;/div&gt;
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU-inställningar är bara tillgängliga när spelet inte körs.</translation>
</message>
@@ -667,7 +706,12 @@ avgjord kod.&lt;/div&gt;
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation type="unfinished"/>
</message>
@@ -717,78 +761,78 @@ avgjord kod.&lt;/div&gt;
<translation>yuzu Konfigurering</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Ljud</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Debug</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Filsystem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Allmänt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>Avancerade grafikinställningar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Snabbknappar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Profiler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Spellista</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Webb</translation>
</message>
@@ -1023,12 +1067,12 @@ avgjord kod.&lt;/div&gt;
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation type="unfinished"/>
</message>
@@ -1257,7 +1301,7 @@ avgjord kod.&lt;/div&gt;
<translation>Bakgrundsfärg:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation type="unfinished"/>
</message>
@@ -1825,7 +1869,7 @@ avgjord kod.&lt;/div&gt;
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Vänster Spak</translation>
</message>
@@ -1919,14 +1963,14 @@ avgjord kod.&lt;/div&gt;
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1945,7 +1989,7 @@ avgjord kod.&lt;/div&gt;
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Pluss</translation>
</message>
@@ -1958,15 +2002,15 @@ avgjord kod.&lt;/div&gt;
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2023,229 +2067,229 @@ avgjord kod.&lt;/div&gt;
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Höger Spak</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Rensa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[ej angett]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Dödzon: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Modifieringsräckvidd: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Prokontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Dubbla Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Vänster Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Höger Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Handhållen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[väntar]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Ny profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
@@ -2293,7 +2337,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Konfigurera</translation>
</message>
@@ -2329,7 +2373,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Test</translation>
</message>
@@ -2344,82 +2388,82 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Lär dig mer&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Testar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Konfigurerar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Test framgångsrikt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Tog emot data från servern framgångsrikt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Test misslyckades</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Kunde inte ta emot giltig data från servern.&lt;br&gt;Var vänlig verifiera att servern är korrekt uppsatt och att adressen och porten är korrekta.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>UDP Test eller kalibreringskonfiguration är igång.&lt;br&gt;Var vänlig vänta för dem att slutföras.</translation>
</message>
@@ -2447,7 +2491,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Ingen</translation>
</message>
@@ -2500,47 +2544,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Utvecklare</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Tillägg</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Allmänt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Avancerade Grafikinställningar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Ljud</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>egenskaper</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Använd global konfiguration (%1)</translation>
</message>
@@ -2558,12 +2602,12 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Tillägg</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Patch namn</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Version</translation>
</message>
@@ -2621,7 +2665,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Profilhantering är endast tillgänglig när spelet inte körs.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2629,92 +2673,92 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Skriv in användarnamn</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Användare</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Skriv in användarnamn för den nya användaren:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Skriv in ett nytt användarnamn:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Bekräfta Radering</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Du håller på att radera användaren med namn &quot;%1&quot;. Är du säker?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Välj Användarbild</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>JPEG-bilder (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Fel när bilden raderades</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Fel uppstod när man försökte överskriva föregående bild vid: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Fel när fil raderades</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Kan inte radera existerande fil: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Fel när användarbild skapades</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Oförmögen att skapa katalog %1 för att spara användarbilder.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Fel under kopiering av användarbild</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Oförmögen att kopiera bild från %1 till %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation type="unfinished"/>
</message>
@@ -3158,17 +3202,17 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Systeminställningar är endast tillgängliga när spel inte körs.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Detta kommer att ersätta nuvarande virtuell Switch med en ny. Nuvarande virtuell Switch kommer att permanent tas bort. Detta kan ha oväntade konsekvenser i spel. Detta kan misslyckas om en utdaterad konfig sparning används. Vill du fortsätta?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Varning</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>Konsol ID: 0x%1</translation>
</message>
@@ -3284,54 +3328,54 @@ Dra punkter för att ändra position, eller dubbelklicka tabellceller för att r
<translation>Radera punkt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Knapp</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Ny profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Skriv in namn för den nya profilen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Radera profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>Radera profil %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Döp om profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Nytt namn:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[tryck på tangent]</translation>
</message>
@@ -3769,892 +3813,893 @@ Dra punkter för att ändra position, eller dubbelklicka tabellceller för att r
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonym data skickas &lt;/a&gt;För att förbättra yuzu. &lt;br/&gt;&lt;br/&gt;Vill du dela med dig av din användarstatistik med oss?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetri</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Laddar WebApplet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>Mängden shaders som just nu byggs</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Nuvarande emuleringshastighet. Värden över eller under 100% indikerar på att emulationen körs snabbare eller långsammare än en Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Hur många bilder per sekund som spelet just nu visar. Detta varierar från spel till spel och scen till scen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tid det tar att emulera en Switch bild, utan att räkna med framelimiting eller v-sync. För emulering på full hastighet så ska det vara som mest 16.67 ms. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>DOCKAD</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Paus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Varning Föråldrat Spelformat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Du använder det dekonstruerade ROM-formatet för det här spelet. Det är ett föråldrat format som har överträffats av andra som NCA, NAX, XCI eller NSP. Dekonstruerade ROM-kataloger saknar ikoner, metadata och uppdatering.&lt;br&gt;&lt;br&gt;För en förklaring av de olika format som yuzu stöder, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;kolla in vår wiki&lt;/a&gt;. Det här meddelandet visas inte igen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Fel vid laddning av ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>ROM-formatet stöds inte.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Ett fel inträffade vid initiering av videokärnan.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Ett okänt fel har uppstått. Se loggen för mer information.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Spardata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Mod-data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Fel Öppnar %1 Mappen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Mappen finns inte!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Fel Under Öppning Av Överförbar Shadercache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>Innehåll</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Uppdatera</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Ta bort katalog</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>Ta Bort Installerat Spel %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Framgångsrikt borttagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>Tog bort det installerade basspelet framgångsrikt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>Fel Under Borttagning Av %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Basspelet är inte installerat i NAND och kan inte tas bort.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Tog bort den installerade uppdateringen framgångsrikt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Det finns ingen uppdatering installerad för denna titel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Det finns inga DLC installerade för denna titel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Tog framgångsrikt bort den %1 installerade DLCn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Ta Bort Anpassad Spelkonfiguration?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Radera fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Fel När Överförbar Shader Cache Raderades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>En shader cache för denna titel existerar inte.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Raderade den överförbara shadercachen framgångsrikt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Misslyckades att ta bort den överförbara shadercache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Fel När Anpassad Konfiguration Raderades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>En anpassad konfiguration för denna titel existerar inte.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Tog bort den anpassade spelkonfigurationen framgångsrikt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Misslyckades att ta bort den anpassade spelkonfigurationen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS Extraktion Misslyckades!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Det uppstod ett fel vid kopiering av RomFS filer eller användaren avbröt operationen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Full</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Skelett</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Välj RomFS Dump-Läge</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Välj hur du vill att RomFS ska dumpas. &lt;br&gt;Full kommer att kopiera alla filer i den nya katalogen medan &lt;br&gt;skelett bara skapar katalogstrukturen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Extraherar RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Avbryt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS Extraktion Lyckades!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>Operationen var lyckad.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>Fel under öppning av %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Välj Katalog</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Egenskaper</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Spelegenskaperna kunde inte laddas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch Körbar (%1);;Alla Filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Ladda Fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Öppna Extraherad ROM-Katalog</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Ogiltig Katalog Vald</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Katalogen du har valt innehåller inte en &apos;main&apos;-fil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Installerbar Switch-fil (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Installera filer</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Installerar Fil &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Installera resultat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Systemapplikation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Systemarkiv</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Systemapplikationsuppdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Firmwarepaket (Typ A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Firmwarepaket (Typ B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Spel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Speluppdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Spel DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Delta Titel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Välj NCA-Installationsläge...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Välj vilken typ av titel du vill installera som:
(I de flesta fallen, standard &apos;Spel&apos; är bra.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Misslyckades med Installationen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Den titeltyp du valt för NCA är ogiltig.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Filen hittades inte</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Filen &quot;%1&quot; hittades inte</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>yuzu Konto hittades inte</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>För att skicka ett spelkompatibilitetstest, du måste länka ditt yuzu-konto.&lt;br&gt;&lt;br/&gt;För att länka ditt yuzu-konto, gå till Emulering &amp;gt, Konfigurering &amp;gt, Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>Fel när URL öppnades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Oförmögen att öppna URL:en &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo Fil (%1);; Alla Filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Ladda Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Fel öppnar Amiibo-datafilen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Kunde inte öppna Amiibo filen &quot;%1&quot; för läsning.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Fel vid läsning av Amiibo-datafil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Kan inte läsa Amiibo-data helt. Förväntas läsa %1 byte, men kunde bara läsa %2 byte.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Fel vid laddning av Amiibodata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Kan inte ladda Amiibodata.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Skärmdump</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG Bild (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Hastighet: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Hastighet: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Spel: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Ruta: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Spelet du försöker ladda kräver att ytterligare filer dumpas från din Switch innan du spelar.&lt;br/&gt;&lt;br/&gt;För mer information om dumpning av dessa filer, se följande wiki sida: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumpning System Arkiv och Delade Teckensnitt från en Switchkonsol&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Vill du avsluta till spellistan? Fortsatt emulering kan leda till kraschar, skadad spara data och andra buggar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>yuzu kunde inte lokalisera ett Switchsystemarkiv. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>yuzu kunde inte lokalisera ett Switchsystemarkiv: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Systemarkivet Hittades Inte</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Systemarkiv Saknas</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu kunde inte lokalisera Switchens delade fonter. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Delade Teckensnitt Hittades Inte</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Delad Font Saknas</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Dödligt Fel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu stötte på ett dödligt fel, se loggen för mer information. För mer information om åtkomst till loggen, se följande sida: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Hur man Laddar upp Loggfilen&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Vill du avsluta till spellistan? Fortsatt emulering kan leda till kraschar, skadad spara data och andra buggar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Allvarligt fel påträffat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Bekräfta Nyckel Rederivering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4671,37 +4716,37 @@ och eventuellt göra säkerhetskopior.
Detta raderar dina autogenererade nyckelfiler och kör nyckelderivationsmodulen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Saknade säkringar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- Saknar BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- Saknar BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation>- Saknar PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Deriveringsdelar saknas</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4710,39 +4755,39 @@ Detta kan ta upp till en minut beroende
på systemets prestanda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Härleda Nycklar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Välj RomFS Dumpa Mål</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Välj vilken RomFS du vill dumpa.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Är du säker på att du vill stänga yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Är du säker på att du vill stoppa emuleringen? Du kommer att förlora osparade framsteg.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4754,38 +4799,38 @@ Vill du strunta i detta och avsluta ändå?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL inte tillgängligt!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu har inte komilerats med OpenGL support.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Fel under initialisering av OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
@@ -4947,82 +4992,82 @@ Vill du strunta i detta och avsluta ändå?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Perfekt</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Spelet körs perfekt utan ljud och grafikproblem, alla testade funktioner fungerar som avsett utan
några ändringar som behövs.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Utmärkt</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Spelet körs från början till slut med ett fåtal ljud eller grafikproblem. Kan kräva några
ändringar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Okej</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>Spelet körs med stora ljud eller grafikproblem men går att spela från början till slut med
några ändringar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Dålig</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Spelet körs men med stora ljud eller grafikproblem. Går inte att spela klart
även med ändringar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Intro/Meny</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>Spelet går inte att köra på grund utav stora ljud eller grafikproblem. Kommer inte förbi
startskärmen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Startar Inte</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>Spelet kraschar när man försöker starta det.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Inte Testad</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Spelet har ännu inte testats.</translation>
</message>
@@ -5056,22 +5101,22 @@ startskärmen.</translation>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Var vänlig bekräfta att detta är filerna du önskar installera.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Att installera en uppdatering eller DLC kommer överskriva den före detta installerade DLC:n eller uppdateringen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Installera</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>Installera filer till NAND</translation>
</message>
@@ -5103,22 +5148,22 @@ startskärmen.</translation>
<translation>Beräknad Tid 5m 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Laddar...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Laddar Shaders %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Startar...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Beräknad Tid %1</translation>
</message>
@@ -5394,284 +5439,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Installerade SD-titlar</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Installerade NAND-titlar</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Systemtitlar</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Lägg till ny spelkatalog</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[inte inställd]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Hatt %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Axel %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Knapp %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[okänd]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Vänster</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Höger</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Ner</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Upp</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Hem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Touch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[oanvänd]</translation>
</message>
@@ -5712,7 +5757,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Prokontroller</translation>
</message>
@@ -5725,7 +5770,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Dubbla Joycons</translation>
</message>
@@ -5738,7 +5783,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Vänster Joycon</translation>
</message>
@@ -5751,7 +5796,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Höger Joycon</translation>
</message>
@@ -5779,7 +5824,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Handhållen</translation>
</message>
@@ -5900,32 +5945,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
@@ -5964,7 +6009,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5972,17 +6017,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Välj en användare:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Användare</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Profilväljare</translation>
</message>
@@ -6031,7 +6076,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Samtal stack</translation>
</message>
@@ -6039,17 +6084,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>väntar på mutex 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>har waiters: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>ägarhandtag: 0x%1</translation>
</message>
@@ -6057,12 +6102,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>väntar på alla föremål</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>väntar på ett av följande föremål</translation>
</message>
@@ -6070,12 +6115,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>Ej väntad av någon tråd</translation>
</message>
@@ -6083,112 +6128,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>pausad</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>sovande</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>väntar på IPC svar</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>väntar på föremål</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>väntar för skickvariabel</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>väntar på adressbryter</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideal</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>kärna %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>processor = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>idealisk kärna = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>affinitetsmask = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>tråd-id = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>prioritet = %1(nuvarande) / %2(normal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>sista springande fästingar = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>väntar inte på mutex</translation>
</message>
@@ -6196,7 +6241,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>väntade med tråd</translation>
</message>
@@ -6204,7 +6249,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/tr_TR.ts b/dist/languages/tr_TR.ts
index 67ca00872..42f43f9ab 100644
--- a/dist/languages/tr_TR.ts
+++ b/dist/languages/tr_TR.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Sunucuyla iletişim kuruluyor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>İptal Et</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Touchpad&apos;inizin sol üst köşesine&lt;br&gt; dokunun.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Şimdi touchpad&apos;inizin sağ alt köşesine&lt;br&gt; dokunun.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Yapılandırma Tamamlandı!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>Tamam</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -354,7 +354,19 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
<translation>Adres boşluğu kontrolünü kapatır.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU ayarlarına sadece oyun çalışmıyorken erişilebilir.</translation>
</message>
@@ -512,11 +524,38 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>Host MMU Emülasyonunu Etkinleştir</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>CPU ayarlarına sadece oyun çalışmıyorken erişilebilir.</translation>
</message>
@@ -674,7 +713,12 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
<translation>Bütün Kontrolcü Türlerini Etkinleştir</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Bu yuzu kapandığında otomatik olarak eski haline dönecektir.</translation>
</message>
@@ -724,78 +768,78 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
<translation>yuzu Yapılandırması</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Ses</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Hata Ayıklama</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Dosya sistemi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Genel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Grafikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>Gelişmiş Grafik Ayarları</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Kısayollar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Profiller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Ağ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Oyun Listesi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1017,7 +1061,7 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="176"/>
<source>Mute audio when in background</source>
- <translation type="unfinished"/>
+ <translation>Arka plandayken sesi kapat</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_general.ui" line="183"/>
@@ -1030,12 +1074,12 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
<translation>Tüm Ayarları Sıfırla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Bu seçenek tüm genel ve oyuna özgü ayarları silecektir. Oyun dizinleri, profiller ve giriş profilleri silinmeyecektir. Devam etmek istiyor musunuz?</translation>
</message>
@@ -1264,7 +1308,7 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
<translation>Arkaplan Rengi:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly Shaderları, Yalnızca NVIDIA için)</translation>
</message>
@@ -1832,7 +1876,7 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Sol Analog</translation>
</message>
@@ -1926,14 +1970,14 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1952,7 +1996,7 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Artı</translation>
</message>
@@ -1965,15 +2009,15 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2030,230 +2074,230 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Sağ Analog</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Temizle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[belirlenmedi]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>Tuş ayarla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>Tuşları ters çevir</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>Ekseni ters çevir</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>Alt sınır ayarla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>%0 ve %100 arasında bir değer seçin</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Analog Çubuğu Ayarla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Tamama bastıktan sonra, joystikinizi önce yatay sonra dikey olarak hareket ettirin.
Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak hareket ettirin.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>Ölü Bölge: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>Düzenleyici Aralığı: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>İkili Joyconlar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Sol Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Sağ Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>GameCube Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>NES Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>SNES Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>N64 Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Başlat / Durdur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>Kontrol Çubuğu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Çubuğu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Salla!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[bekleniyor]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Yeni Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Bir profil ismi girin:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Kontrol Profili Oluştur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>Girilen profil ismi geçerli değil!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili oluşturulamadı </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Kontrol Profilini Kaldır</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili kaldırılamadı</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Kontrol Profilini Yükle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili yüklenemedi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Kontrol Profilini Kaydet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili kaydedilemedi</translation>
</message>
@@ -2301,7 +2345,7 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Yapılandır</translation>
</message>
@@ -2337,7 +2381,7 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Test</translation>
</message>
@@ -2352,82 +2396,82 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
<translation>Server&apos;ı Kaldır</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Daha Fazlası&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Port numarasında geçersiz karakterler var</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>Port 0 ila 65353 aralığında olmalıdır</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>IP adresi geçerli değil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Bu UDP sunucusu zaten var</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>8&apos;den fazla server eklenemez</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Test Ediliyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Yapılandırılıyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Test Başarılı</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Bilgi başarıyla sunucudan kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Test Başarısız</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Serverdan geçerli veri alınamadı.&lt;br&gt;Lütfen sunucunun doğru ayarlandığını ya da adres ve portun doğru olduğunu kontrol edin.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>UDP testi ya da yapılandırılması devrede.&lt;br&gt;Lütfen bitmesini bekleyin.</translation>
</message>
@@ -2455,7 +2499,7 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
<translation>Ağ Arayüzü </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Hiçbiri</translation>
</message>
@@ -2508,47 +2552,47 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
<translation>Geliştirici</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Eklentiler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Genel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Grafikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Gelişmiş Grafikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Ses</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Özellikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>Global yapılandırmayı kullan (%1)</translation>
</message>
@@ -2566,12 +2610,12 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
<translation>Eklentiler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Yama Adı</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Versiyon</translation>
</message>
@@ -2629,7 +2673,7 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
<translation>Profil ayarlarına sadece oyun çalışmıyorken erişilebilir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2637,92 +2681,92 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Kullanıcı Adınızı girin</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Kullanıcılar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Yeni kullanıcı için yeni bir kullanıcı adı giriniz:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Yeni bir kullanıcı adı giriniz:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Silmeyi Onayla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>&quot;%1&quot; adlı kullanıcıyı silmek istediğinize emin misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Kullanıcı Resmi Seçin</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>JPEG Görüntüler (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Resim silinirken hata oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Eski resmin üzerine yazılmaya çalışırken hata oluştu: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Dosyayı silerken hata oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Mevcut %1 dosyası silinemedi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Kullanıcı görüntü klasörünü oluştururken hata</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Kullanıcı görüntülerini depolamak için %1 klasörü oluşturulamadı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Kullanıcı görüntüsünü kopyalarken hata</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Görüntü %1&apos;den %2&apos;ye kopyalanamadı</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Kullanıcı görüntüsünü yeniden boyutlandırma hatası</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>Görüntü yeniden boyutlandırılamıyor</translation>
</message>
@@ -3166,17 +3210,17 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
<translation>Sistem ayarlarına sadece oyun çalışmıyorken erişilebilir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Bu sanal Switchinizi yeni biriyle değiştirir. Geçerli sanal switchiniz geri getirilemez. Bu oyunlarda beklenmeyen etkilere neden olabilir. Eski bir oyun yapılandırma kayıt dosyası kullanıyorsanız bu başarısız olabilir. Devam?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Uyarı</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>Konsol ID: 0x%1</translation>
</message>
@@ -3292,54 +3336,54 @@ Noktanın konumunu değiştirmek için sürükleyin ya da sayıların üstüne
<translation>Noktayı Sil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>Tuş</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Yeni Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>Yeni profil için bir isim giriniz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>Profili Sil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>%1 adlı profili silmek istediğinize emin misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>Profili Yeniden Adlandır</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>Yeni Ad:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[tuşa basın]</translation>
</message>
@@ -3555,7 +3599,7 @@ Noktanın konumunu değiştirmek için sürükleyin ya da sayıların üstüne
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="23"/>
<source>Press any controller button to vibrate the controller.</source>
- <translation type="unfinished"/>
+ <translation>Kumandayı titretmek için herhangi bir kumanda düğmesine basın.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="30"/>
@@ -3777,481 +3821,482 @@ Noktanın konumunu değiştirmek için sürükleyin ya da sayıların üstüne
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Yuzuyu geliştirmeye yardımcı olmak için &lt;/a&gt; anonim veri toplandı. &lt;br/&gt;&lt;br/&gt;Kullanım verinizi bizimle paylaşmak ister misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Telemetri</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>Web Uygulaması Yükleniyor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>Web Uygulamasını Devre Dışı Bırak</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>Web uygulamasını devre dışı bırakmak emülasyon seansının sonuna kadar bir daha gösterilmemesine sebep olur. Bu, belirsiz davranışlara sebep olabilir ve sadece Super Mario 3D All-Stars&apos;da kullanılmalıdır. Web uygulamasını devre dışı bırakmak istediğinize emin misiniz?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>Şu anda derlenen shader miktarı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Geçerli seçili çözünürlük ölçekleme çarpanı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Geçerli emülasyon hızı. %100&apos;den yüksek veya düşük değerler emülasyonun bir Switch&apos;den daha hızlı veya daha yavaş çalıştığını gösterir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Oyunun şuanda saniye başına kaç kare gösterdiği. Bu oyundan oyuna ve sahneden sahneye değişiklik gösterir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Bir Switch karesini emüle etmekte geçen zaman, karelimitleme ve v-sync hariç. Tam hız emülasyon için bu en çok 16,67 ms olmalı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>DOCK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Son Dosyaları Temizle</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>&amp;Devam Et</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Durdur</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation>yuzu şu anda bir oyun çalıştırıyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Uyarı, Eski Oyun Formatı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Bu oyun için dekonstrükte ROM formatı kullanıyorsunuz, bu fromatın yerine NCA, NAX, XCI ve NSP formatları kullanılmaktadır. Dekonstrükte ROM formatları ikon, üst veri ve güncelleme desteği içermemektedir.&lt;br&gt;&lt;br&gt;Yuzu&apos;nun desteklediği çeşitli Switch formatları için&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;Wiki&apos;yi ziyaret edin&lt;/a&gt;. Bu mesaj yeniden gösterilmeyecektir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>ROM yüklenirken hata oluştu!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>Bu ROM biçimi desteklenmiyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Video çekirdeğini başlatılırken bir hata oluştu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu video çekirdeğini çalıştırırken bir hatayla karşılaştı. Bu sorun genellikle eski GPU sürücüleri sebebiyle ortaya çıkar. Daha fazla detay için lütfen log dosyasına bakın. Log dosyasını incelemeye dair daha fazla bilgi için lütfen bu sayfaya ulaşın: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Log dosyası nasıl yüklenir&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>ROM yüklenirken hata oluştu! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Lütfen dosyalarınızı yeniden dump etmek için&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu hızlı başlangıç kılavuzu&apos;nu&lt;/a&gt; takip edin.&lt;br&gt; Yardım için yuzu wiki&lt;/a&gt;veya yuzu Discord&apos;una&lt;/a&gt; bakabilirsiniz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Bilinmeyen bir hata oluştu. Lütfen daha fazla detay için kütüğe göz atınız.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>Kayıt Verisi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Mod Verisi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>%1 klasörü açılırken hata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Klasör mevcut değil!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Transfer Edilebilir Shader Cache&apos;ini Açarken Bir Hata Oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Bu oyun için shader cache konumu oluşturulamadı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>İçerikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Güncelleme</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>Girdiyi Kaldır</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>%1 Adlı Oyunu Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>Başarıyla Kaldırıldı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>Yüklenmiş oyun başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>%1 Adlı Oyun Kaldırılırken Bir Hata Oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Asıl oyun NAND&apos;de kurulu değil ve kaldırılamaz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>Yüklenmiş güncelleme başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>Bu oyun için yüklenmiş bir güncelleme yok.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>Bu oyun için yüklenmiş bir DLC yok.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>%1 yüklenmiş DLC başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>OpenGL Transfer Edilebilir Shader Cache&apos;ini Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Vulkan Transfer Edilebilir Shader Cache&apos;ini Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Tüm Transfer Edilebilir Shader Cache&apos;leri Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>Oyuna Özel Yapılandırmayı Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>Dosyayı Sil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Transfer Edilebilir Shader Cache Kaldırılırken Bir Hata Oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>Bu oyun için oluşturulmuş bir shader cache yok.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Transfer edilebilir shader cache başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Transfer edilebilir shader cache kaldırılamadı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Transfer Edilebilir Shader Cache&apos;ler Kaldırılırken Bir Hata Oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Transfer edilebilir shader cacheler başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Transfer edilebilir shader cache konumu kaldırılamadı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>Oyuna Özel Yapılandırma Kaldırılırken Bir Hata Oluştu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Bu oyun için bir özel yapılandırma yok.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Oyuna özel yapılandırma başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Oyuna özel yapılandırma kaldırılamadı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS Çıkartımı Başarısız!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>RomFS dosyaları kopyalanırken bir hata oluştu veya kullanıcı işlemi iptal etti.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>Full</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Çerçeve</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>RomFS Dump Modunu Seçiniz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Lütfen RomFS&apos;in nasıl dump edilmesini istediğinizi seçin.&lt;br&gt;&quot;Full&quot; tüm dosyaları yeni bir klasöre kopyalarken &lt;br&gt;&quot;skeleton&quot; sadece klasör yapısını oluşturur.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>%1 konumunda RomFS çıkarmaya yetecek alan yok. Lütfen yer açın ya da Emülasyon &gt; Yapılandırma &gt; Sistem &gt; Dosya Sistemi &gt; Dump konumu kısmından farklı bir çıktı konumu belirleyin.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>RomFS çıkartılıyor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>İptal</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS Çıkartımı Başarılı!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>İşlem başarıyla tamamlandı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>%1 Açılırken Bir Hata Oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Klasör Seç</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Özellikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Oyun özellikleri yüklenemedi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch Çalıştırılabilir Dosyası (%1);;Tüm Dosyalar (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Dosya Aç</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Çıkartılmış ROM klasörünü aç</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Geçersiz Klasör Seçildi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Seçtiğiniz klasör bir &quot;main&quot; dosyası içermiyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Yüklenilebilir Switch Dosyası (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submissions Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>Dosya Kur</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n dosya kaldı</numerusform><numerusform>%n dosya kaldı</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>&quot;%1&quot; dosyası kuruluyor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>Kurulum Sonuçları</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Olası çakışmaları önlemek için oyunları NAND&apos;e yüklememenizi tavsiye ediyoruz.
Lütfen bu özelliği sadece güncelleme ve DLC yüklemek için kullanın.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n dosya güncel olarak yüklendi
@@ -4259,7 +4304,7 @@ Lütfen bu özelliği sadece güncelleme ve DLC yüklemek için kullanın.</tran
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n dosyanın üstüne yazıldı
@@ -4267,7 +4312,7 @@ Lütfen bu özelliği sadece güncelleme ve DLC yüklemek için kullanın.</tran
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n dosya yüklenemedi
@@ -4275,401 +4320,401 @@ Lütfen bu özelliği sadece güncelleme ve DLC yüklemek için kullanın.</tran
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Sistem Uygulaması</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Sistem Arşivi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Sistem Uygulama Güncellemesi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Yazılım Paketi (Tür A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Yazılım Paketi (Tür B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Oyun</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Oyun Güncellemesi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Oyun DLC&apos;si</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Delta Başlık</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>NCA Kurulum Tipi Seçin...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Lütfen bu NCA dosyası için belirlemek istediğiniz başlık türünü seçiniz:
(Çoğu durumda, varsayılan olan &apos;Oyun&apos; kullanılabilir.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Kurulum Başarısız Oldu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>NCA için seçtiğiniz başlık türü geçersiz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Dosya Bulunamadı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Dosya &quot;%1&quot; Bulunamadı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>Tamam</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Kayıp yuzu Hesabı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Oyun uyumluluk test çalışması göndermek için öncelikle yuzu hesabınla giriş yapmanız gerekiyor.&lt;br&gt;&lt;br/&gt;Yuzu hesabınızla giriş yapmak için, Emülasyon &amp;gt; Yapılandırma &amp;gt; Web&apos;e gidiniz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>URL açılırken bir hata oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>URL &quot;%1&quot; açılamıyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>TAS kayıtta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>Oyuncu 1&apos;in dosyasının üstüne yazılsın mı?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>Geçersiz yapılandırma tespit edildi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Handheld kontrolcü dock modunda kullanılamaz. Pro kontrolcü seçilecek.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo Dosyası (%1);; Tüm Dosyalar (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Amiibo Yükle</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Amiibo veri dosyasını açarken hata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>&quot;%1&quot; Amiibo dosyası okunamadı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Amiibo veri dosyasını okurken hata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Amiibo verisi tamamen okunamadı. %1 byte okunması bekleniyordu, fakat bunun sadece %2&apos;si okunabildi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Amiibo verisi yüklenirken hata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Amiibo verisi yüklenemedi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Ekran Görüntüsü Al</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG görüntüsü (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS durumu: %1%2 çalışıyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>TAS durumu: %1 kaydediliyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS durumu: %1%2 boşta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>TAS durumu: Geçersiz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>&amp;Çalıştırmayı durdur</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Başlat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>K&amp;aydetmeyi Durdur</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>K&amp;aydet</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Oluşturuluyor: %n shader</numerusform><numerusform>Oluşturuluyor: %n shader</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Ölçek: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Hız %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Hız: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Oyun: %1 FPS (Sınırsız)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Oyun: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Kare: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU YÜKSEK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EKSTREM</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>GPU HATASI</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>EN YAKIN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>BILINEAR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>BICUBIC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>GAUSYEN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>SCALEFORCE</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>NO AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Yüklemeye çalıştığınız oyun oynanmadan önce Switch&apos;inizden ek dosyaların alınmasını gerektiriyor.&lt;br/&gt;&lt;br/&gt;Bu dosyaları nasıl alacağınız hakkında daha fazla bilgi için, lütfen bu wiki sayfasına göz atınız: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Konsolunuzdan Sistem Arşivleri ve Shared Fontları Almak&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;oyun listesine geri dönmek ister misiniz? Emülasyona devam etmek çökmelere, kayıt dosyalarının bozulmasına veya başka hatalara sebep verebilir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>Yuzu bir Switch sistem arşivi bulamadı. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>Yuzu bir Switch sistem arşivi bulamadı: %1. %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Sistem Arşivi Bulunamadı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Sistem Arşivi Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>Yuzu Switch shared fontlarını bulamadı. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Shared Font&apos;lar Bulunamadı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Shared Font Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Önemli Hata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Yuzu önemli bir hatayla karşılaştı, lütfen daha fazla detay için kütüğe bakınız. Kütüğe erişmek hakkında daha fazla bilgi için, lütfen bu sayfaya göz atınız: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Log Dosyası Nasıl Yüklenir&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Oyun listesine geri dönmek ister misiniz? Emülasyona devam etmek çökmelere, kayıt dosyalarının bozulmasına veya başka hatalara sebep olabilir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>Önemli Bir Hatayla Karşılaşıldı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Anahtar Yeniden Türetimini Onayla</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4686,37 +4731,37 @@ ve opsiyonel olarak yedekler alın.
Bu sizin otomatik oluşturulmuş anahtar dosyalarınızı silecek ve anahtar türetme modülünü tekrar çalıştıracak.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>Anahtarlar Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- BOOT0 Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- BCPKG2-1-Normal-Main Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation>- PRODINFO Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>Türeten Bileşenleri Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Şifreleme anahtarları eksik. &lt;br&gt;Lütfen takip edin&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu hızlı başlangıç kılavuzunu&lt;/a&gt;tüm anahtarlarınızı, aygıt yazılımınızı ve oyunlarınızı almada.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4725,39 +4770,39 @@ Bu sistem performansınıza bağlı olarak
bir dakika kadar zaman alabilir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Anahtarlar Türetiliyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>RomFS Dump Hedefini Seçiniz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Lütfen dump etmek istediğiniz RomFS&apos;i seçiniz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>yuzu&apos;yu kapatmak istediğinizden emin misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Emülasyonu durdurmak istediğinizden emin misiniz? Kaydedilmemiş veriler kaybolur.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4769,38 +4814,38 @@ Görmezden gelip kapatmak ister misiniz?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL kullanıma uygun değil!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>Yuzu OpenGL desteklememektedir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>OpenGl başlatılırken bir hata oluştu!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>GPU&apos;nuz OpenGL desteklemiyor veya güncel bir grafik sürücüsüne sahip değilsiniz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>OpenGl 4.6 başlatılırken bir hata oluştu!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>GPU&apos;nuz OpenGL 4.6&apos;yı desteklemiyor veya güncel bir grafik sürücüsüne sahip değilsiniz.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>GPU&apos;nuz gereken bir yada daha fazla OpenGL eklentisini desteklemiyor Lütfen güncel bir grafik sürücüsüne sahip olduğunuzdan emin olun.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt; Desteklenmeyen Eklentiler:&lt;br&gt;%2</translation>
</message>
@@ -4962,12 +5007,12 @@ Görmezden gelip kapatmak ister misiniz?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Mükemmel</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Oyun grafik veya ses hataları olmadan sorunsuz çalışıyor, tüm test edilmiş özellikler
@@ -4975,12 +5020,12 @@ geçici çözümler gerektirmeden
beklendiği gibi çalışıyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Çok iyi</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Oyun küçük grafik veya ses hatalarıyla çalışıyor ve baştan sona kadar oynanabilir. Bazı
@@ -4988,12 +5033,12 @@ geçici çözümler
gerektirebilir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Yeterli</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>Oyun büyük grafik veya ses hatalarıyla çalışıyor fakat geçici çözümler ile baştan sona
@@ -5001,12 +5046,12 @@ kadar
oynanabilir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Kötü</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Oyun çalışıyor fakat büyük grafik veya ses hatalarına sahip. Geçici çözümlerle bile
@@ -5014,33 +5059,33 @@ hatalardan dolayı
bazı alanlar geçilemiyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>İntro/Menü</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>Büyük grafik ve ses sorunlardan dolayı oyun oynanamaz durumda. Başlangıç ekranından ileriye geçilmiyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Açılmıyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>Oyun açılmaya çalışıldığında çöküyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Test Edilmedi</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Bu oyun henüz test edilmedi.</translation>
</message>
@@ -5074,22 +5119,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Lütfen yüklemek istediğiniz dosyaların bu dosyalar olduğunu doğrulayın.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Bir Güncelleme ya da DLC yüklemek daha önce yüklenmiş olanların üstüne yazacaktır.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Kur</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>NAND&apos;e Dosya Kur</translation>
</message>
@@ -5122,22 +5167,22 @@ Screen.</source>
<translation>Tahmini Süre 5d 4s</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Yükleniyor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Shaderlar Yükleniyor %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Başlatılıyor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Tahmini Süre %1</translation>
</message>
@@ -5417,284 +5462,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>Yüklenmiş SD Oyunları</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>Yüklenmiş NAND Oyunları</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>Sistemde Yüklü Oyunlar</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>Yeni Oyun Konumu Ekle</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>Favoriler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[belirlenmedi]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Hat %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Eksen %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Tuş %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[bilinmeyen]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Sol</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Sağ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Aşağı</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Yukarı</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation>Yuvarlak</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation>Çarpı</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation>Kare</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation>Üçgen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>Share</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>Options</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Dokunmatik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[belirsiz]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[geçersiz]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eksen %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eksen %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2Hareket %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation>%1%2Tuş %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[kullanılmayan]</translation>
</message>
@@ -5735,7 +5780,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
@@ -5748,7 +5793,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>İkili Joyconlar</translation>
</message>
@@ -5761,7 +5806,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Sol Joycon</translation>
</message>
@@ -5774,7 +5819,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Sağ Joycon</translation>
</message>
@@ -5802,7 +5847,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
@@ -5923,32 +5968,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>GameCube Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation>NES Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation>SNES Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation>N64 Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
@@ -5993,7 +6038,7 @@ Lütfen tekrar deneyin ya da yazılımın geliştiricisiyle iletişime geçin.</
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -6001,17 +6046,17 @@ Lütfen tekrar deneyin ya da yazılımın geliştiricisiyle iletişime geçin.</
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Kullanıcı Seç:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Kullanıcılar</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Profil Seçici</translation>
</message>
@@ -6064,7 +6109,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Çağrı yığını</translation>
</message>
@@ -6072,17 +6117,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>mutex bekleniyor 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>bekleyenler: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>owner handle: 0x%1</translation>
</message>
@@ -6090,12 +6135,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>tüm objeler için bekleniyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>bu objeler için bekleniyor</translation>
</message>
@@ -6103,12 +6148,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>hiçbir thread beklemedi</translation>
</message>
@@ -6116,112 +6161,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>çalışabilir</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>duraklatıldı</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>uyuyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>IPC cevabı bekleniyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>objeler bekleniyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>koşul değişkeni bekleniyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>adres belirleyici bekleniyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>askıdaki işlemin sürdürülmesi bekleniyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>bekleniyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>başlatıldı</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>sonlandırıldı </translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>bilinmeyen</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideal</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>çekirdek %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>işlemci = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>ideal çekirdek = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>affinity mask = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>izlek id: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>öncelik = %1(geçerli) / %2(normal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>son çalışan tickler = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>mutex için beklenmiyor</translation>
</message>
@@ -6229,7 +6274,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>izlek bekledi</translation>
</message>
@@ -6237,7 +6282,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>&amp;Wait Tree</translation>
</message>
diff --git a/dist/languages/vi.ts b/dist/languages/vi.ts
index a8f95c86a..5cc13e4f6 100644
--- a/dist/languages/vi.ts
+++ b/dist/languages/vi.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Đang giao tiếp với máy chủ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Hủy bỏ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Hãy chạm vào góc trên cùng&lt;br&gt;bên trái trên touchpad của bạn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Giờ hãy chạm vào góc dưới cùng&lt;br&gt;bên phải trên touchpad của bạn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Đã hoàn thành quá trình thiết lập!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -357,7 +357,19 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Cài đặt CPU chỉ có sẵn khi không chạy trò chơi.</translation>
</message>
@@ -498,11 +510,38 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Cài đặt CPU chỉ có sẵn khi không chạy trò chơi.</translation>
</message>
@@ -660,7 +699,12 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Sẽ tự động thiết lập lại khi tắt yuzu.</translation>
</message>
@@ -710,78 +754,78 @@ p, li { white-space: pre-wrap; }
<translation>Thiết lập yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Âm thanh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Gỡ lỗi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Hệ thống tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Chung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Đồ hoạ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>Đồ họa Nâng cao</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Phím tắt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Hồ sơ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Mạng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Danh sách trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1016,12 +1060,12 @@ p, li { white-space: pre-wrap; }
<translation>Đặt lại mọi tùy chỉnh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Quá trình này sẽ thiết lập lại toàn bộ tùy chỉnh và gỡ hết mọi cài đặt cho từng game riêng lẻ. Quá trình này không xóa đường dẫn tới thư mục game, hồ sơ, hay hồ sơ của thiết lập phím. Tiếp tục?</translation>
</message>
@@ -1250,7 +1294,7 @@ p, li { white-space: pre-wrap; }
<translation>Màu nền:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly Shaders, Chỉ Cho NVIDIA)</translation>
</message>
@@ -1818,7 +1862,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Cần trái</translation>
</message>
@@ -1912,14 +1956,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1938,7 +1982,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Cộng</translation>
</message>
@@ -1951,15 +1995,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2016,230 +2060,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Cần phải</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Bỏ trống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[không đặt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Chọn một giá trị giữa 0% và 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Thiết lập Cần Điều Khiển</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Sau khi bấm OK, di chuyển cần sang ngang, rồi sau đó sang dọc.
Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần sang dọc trước, rồi sang ngang.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Tay cầm Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Joycon đôi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Joycon Trái</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Joycon Phải</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Cầm tay</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Tay cầm GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Bắt đầu / Tạm ngưng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Lắc!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[Chờ]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Hồ sơ mới</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Nhập tên hồ sơ:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Tạo Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>Tên hồ sơ không hợp lệ!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Quá trình tạo hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Xóa Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Quá trình xóa hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Nạp Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Quá trình nạp hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Lưu Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Quá trình lưu hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
@@ -2287,7 +2331,7 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Thiết lập</translation>
</message>
@@ -2323,7 +2367,7 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Thử nghiệm</translation>
</message>
@@ -2338,82 +2382,82 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Xóa Server</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Tìm hiểu thêm&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Cổng có kí tự không hợp lệ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>Cổng phải từ 0 đến 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>Địa chỉ IP không hợp lệ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Server UDP đã tồn tại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Không thể vượt quá 8 server</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Thử nghiệm</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Cài đặt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Thử Nghiệm Thành Công</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Nhận được dữ liệu từ server!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Thử Nghiệm Thất Bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Không thể nhận được dữ liệu hợp lệ từ server. &lt;br&gt;Hãy chắc chắn server được thiết lập chính xác, từ địa chỉ lẫn cổng phải được thiết lập đúng.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation type="unfinished"/>
</message>
@@ -2441,7 +2485,7 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Trống</translation>
</message>
@@ -2494,47 +2538,47 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Nhà Phát Hành</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Bổ Sung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Chung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Đồ hoạ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Đồ Họa Nâng Cao</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Âm thanh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Thuộc tính</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation type="unfinished"/>
</message>
@@ -2552,12 +2596,12 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Bổ Sung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Tên bản vá</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Phiên Bản</translation>
</message>
@@ -2615,7 +2659,7 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Chỉ có thể quản lí hồ sơ khi game không chạy.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2623,92 +2667,92 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Điền Tên</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Người Dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Chọn tên cho người dùng mới</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Chọn một tên mới:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Xác nhận xóa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Bạn đang xóa người dùng &quot;%1&quot;. Bạn chắc chứ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Chọn Ảnh cho Người Dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Ảnh JPEG (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Lỗi khi xóa ảnh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Có lỗi khi ghi đè ảnh trước tại: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Lỗi xóa ảnh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Không thể xóa ảnh hiện tại: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Lỗi khi tạo thư mục chứa ảnh người dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Không thể tạo thư mục %1 để chứa ảnh người dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Lỗi chép ảnh người dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Không thể chép ảnh từ %1 sang %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Lỗi thu phóng ảnh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>Không thể thu phóng ảnh</translation>
</message>
@@ -3152,17 +3196,17 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Cài đặt hệ thống chỉ khả dụng khi trò chơi không chạy.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Điều này sẽ thay thế Switch ảo hiện tại của bạn bằng một cái mới. Switch ảo hiện tại của bạn sẽ không thể phục hồi lại. Điều này có thể gây ra tác dụng không mong muốn trong trò chơi. Điều này có thể thất bại, nếu thiết lập của bản lưu game đã lỗi thời. Tiếp tục?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Chú ý</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>ID của máy: 0x%1</translation>
</message>
@@ -3277,54 +3321,54 @@ Drag points to change position, or double-click table cells to edit values.</sou
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Hồ sơ mới</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[nhấn nút]</translation>
</message>
@@ -3762,892 +3806,893 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Dữ liệu ẩn danh được thu thập&lt;/a&gt;để hỗ trợ cải thiện yuzu. &lt;br/&gt;&lt;br/&gt;Bạn có muốn chia sẽ dữ liệu sử dụng cho chúng tôi?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Viễn trắc</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Tốc độ giả lập hiện tại. Giá trị cao hơn hoặc thấp hơn 100% chỉ ra giả lập sẽ chạy nhanh hơn hoặc chậm hơn trên máy Switch</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Có bao nhiêu khung hình trên mỗi giây mà trò chơi đang hiển thị. Điều này sẽ thay đổi từ giữa các trò chơi và các khung cảnh khác nhau.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Thời gian mà giả lập lấy từ khung hình Switch, sẽ không kể đến giới hạn khung hình hoặc v-sync. Đối với tốc độ tối đa mà giả lập nhận được nhiều nhất là ở độ khoảng 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Tạm dừng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Chú ý định dạng trò chơi đã lỗi thời</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Bạn đang sử dụng định dạng danh mục ROM giải mã cho trò chơi này, và đó là một định dạng lỗi thời đã được thay thế bởi những thứ khác như NCA, NAX, XCI, hoặc NSP. Danh mục ROM giải mã có thể thiếu các icon, metadata, và hỗ trợ cập nhật.&lt;br&gt;&lt;br&gt;Để hiểu thêm về các định dạng khác nhau của Switch mà yuzu hỗ trợ, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;vui lòng kiểm tra trên wiki của chúng tôi&lt;/a&gt;. Thông báo này sẽ không hiển thị lại lần sau.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Lỗi xảy ra khi nạp ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>Định dạng ROM này không hỗ trợ.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Đã xảy ra lỗi khi khởi tạo lõi đồ hoạ.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Đã xảy ra lỗi không xác định. Hãy kiểm tra phần báo cáo để biết thêm chi tiết.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Xảy ra lỗi khi mở %1 thư mục</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Thư mục này không tồn tại!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Cập nhật</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>Khai thác RomFS không thành công!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Đã xảy ra lỗi khi sao chép tệp tin RomFS hoặc người dùng đã hủy bỏ hoạt động này.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Sườn</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Chọn chế độ kết xuất RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Vui lòng chọn cách mà bạn muốn RomFS kết xuất.&lt;br&gt;Chế độ Đầy Đủ sẽ sao chép toàn bộ tệp tin vào một danh mục mới trong khi &lt;br&gt;chế độ Sườn chỉ tạo kết cấu danh mục.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Khai thác RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Hủy bỏ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Khai thác RomFS thành công!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>Các hoạt động đã hoàn tất thành công.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Chọn danh mục</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Thuộc tính</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Không thể tải thuộc tính của trò chơi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Thực thi Switch (%1);;Tất cả tệp tin (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Nạp tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Mở danh mục ROM đã trích xuất</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Danh mục đã chọn không hợp lệ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Danh mục mà bạn đã chọn không có chứa tệp tin &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Những tệp tin Switch cài được (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Đang cài đặt tệp tin &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Ứng dụng hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Hệ thống lưu trữ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Cập nhật hệ thống ứng dụng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Gói phần mềm hệ thống (Loại A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Gói phần mềm (Loại B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Cập nhật trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Nội dung trò chơi có thể tải xuống</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Tiêu đề Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Chọn cách cài đặt NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Vui lòng chọn loại tiêu đề mà bạn muốn cài đặt NCA này:
(Trong hầu hết trường hợp, chọn mặc định &apos;Game&apos; là tốt nhất.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Cài đặt đã không thành công</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Loại tiêu đề NCA mà bạn chọn nó không hợp lệ.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Không tìm thấy tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Không tìm thấy tệp tin &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Thiếu tài khoản yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Để gửi trường hợp thử nghiệm trò chơi tương thích, bạn phải liên kết tài khoản yuzu.&lt;br&gt;&lt;br/&gt;Để liên kết tải khoản yuzu của bạn, hãy đến Giả lập &amp;gt; Thiết lập &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Tệp tin Amiibo (%1);; Tất cả tệp tin (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Nạp dữ liệu Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Xảy ra lỗi khi mở dữ liệu tệp tin Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Không thể mở tệp tin Amiibo &quot;%1&quot; để đọc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Xảy ra lỗi khi đọc dữ liệu tệp tin Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Hoàn toàn không thể đọc được dữ liệu Amiibo. Dự kiến byte sẽ đọc là %1, nhưng byte chỉ có thể đọc là %2.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Xảy ra lỗi khi nạp dữ liệu Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Không thể nạp dữ liệu Amiibo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Chụp ảnh màn hình</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>Hình ảnh PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Bắt đầu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Tốc độ: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Tốc độ: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Trò chơi: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Khung hình: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Trò chơi bạn muốn chạy yêu cầu một số tệp tin được sao chép từ thiết từ máy Switch của bạn trước khi bắt đầu chơi.&lt;br/&gt;&lt;br/&gt;Để biết thêm thông tin về cách sao chép những tệp tin đó, vui lòng tham khảo những wiki sau: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Sao chép dữ liệu hệ thống và font dùng chung từ máy Switch&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Bạn có muốn trở về danh sách trò chơi? Nếu bạn vẫn tiếp tục thì trò chơi có thể gặp sự cố, dữ liệu lưu tiến trình có thể bị lỗi, hoặc bạn sẽ gặp những lỗi khác.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Không tìm thấy tệp tin hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Bị thiếu tệp tin hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu không thể tìm thấy vị trí font dùng chung của Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Không tìm thấy font dùng chung</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Bị thiếu font dùng chung</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Lỗi nghiêm trọng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu đã xảy ra lỗi nghiêm trọng, vui lòng kiểm tra sổ ghi chép để biết thêm chi tiết. Để biết thêm thông tin về cách truy cập sổ ghi chép, vui lòng xem trang sau: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Làm sao để tải tệp tin sổ ghi chép lên&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Bạn có muốn trở về danh sách game? Tiếp tục có thể khiến giả lập gặp sự cố, gây hỏng dữ liệu đã lưu, hoặc gây các lỗi khác.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Xác nhận mã khóa Rederivation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4664,37 +4709,37 @@ và phải tạo ra một bản sao lưu lại.
Điều này sẽ xóa mã khóa tự động tạo trên tệp tin của bạn và chạy lại mô-đun chiết xuất mã khoá.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4703,39 +4748,39 @@ on your system&apos;s performance.</source>
hệ thống của bạn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Mã khóa xuất phát</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Chọn thư mục để sao chép RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Vui lòng chọn RomFS mà bạn muốn chiết xuất.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Bạn có chắc chắn muốn đóng yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Bạn có chắc rằng muốn dừng giả lập? Bất kì tiến trình nào chưa được lưu sẽ bị mất.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4747,38 +4792,38 @@ Bạn có muốn bỏ qua yêu cầu đó và thoát luôn không?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>Không có sẵn OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Đã xảy ra lỗi khi khởi tạo OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
@@ -4940,79 +4985,79 @@ Bạn có muốn bỏ qua yêu cầu đó và thoát luôn không?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Tốt nhất</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Game chạy rất tốt, không lỗi về âm thanh và đồ hoạ, mọi chức năng của game được thử thì hoạt động như dự kiến mà không cần
bất kì tinh chỉnh nào.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Tốt</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Có thể chơi từ đầu đến cuối nhưng vẫn có một số lỗi nhỏ về đồ họa hoặc âm thanh. Có thể sẽ cần tới một vài tinh chỉnh nào đó.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Tạm ổn</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>Game chạy nhưng với rất nhiều lỗi đồ hoạ và âm thanh, tuy nhiên có thể chơi từ đầu đến cuối với
một số tinh chỉnh.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Không tốt</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Game chạy được, tuy nhiên với nhiều lỗi về đồ hoạ và âm thanh. Không thể tiếp tục ở một số khu vực trong game kể cả với tinh chỉnh.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Phần mở đầu/Menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>Hoàn toàn không thể chơi được do có nhiều lỗi đồ họa hoặc âm thanh. Không thể chơi tiếp sau khi bấm nút bắt đầu trò chơi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Không khởi động</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>Trò chơi sẽ thoát đột ngột khi khởi động.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Chưa ai thử</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Trò chơi này chưa có ai thử cả.</translation>
</message>
@@ -5046,22 +5091,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Xin hãy xác nhận đây là những tệp tin bạn muốn cài.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Cài đặt một tệp tin cập nhật hoặc DLC mới sẽ thay thế những tệp cũ đã cài trước đó.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Cài đặt</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation type="unfinished"/>
</message>
@@ -5093,22 +5138,22 @@ Screen.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Đang tải...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Đang nạp shader %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Đang mở...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Ước tính thời gian %1</translation>
</message>
@@ -5384,284 +5429,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[chưa đặt nút]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Mũ %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Trục %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Nút %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[không xác định]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Trái</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Phải</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Xuống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Lên</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Bắt đầu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Cảm Ứng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[không sử dụng]</translation>
</message>
@@ -5702,7 +5747,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Tay cầm Pro Controller</translation>
</message>
@@ -5715,7 +5760,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Joycon đôi</translation>
</message>
@@ -5728,7 +5773,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Joycon Trái</translation>
</message>
@@ -5741,7 +5786,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Joycon Phải</translation>
</message>
@@ -5769,7 +5814,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Cầm tay</translation>
</message>
@@ -5890,32 +5935,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Tay cầm GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
@@ -5954,7 +5999,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5962,17 +6007,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Chọn một người dùng:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Người Dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Chọn hồ sơ</translation>
</message>
@@ -6021,7 +6066,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Chùm cuộc gọi</translation>
</message>
@@ -6029,17 +6074,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>chờ đợi loại trừ lẫn nhau 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>có chờ đợi: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>chủ điều khiển: 0x%1</translation>
</message>
@@ -6047,12 +6092,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>chờ đợi toàn bộ đối tượng</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>chờ đợi một đối tượng đang theo dõi</translation>
</message>
@@ -6060,12 +6105,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>chờ đợi bởi vì không có luồng</translation>
</message>
@@ -6073,112 +6118,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>tạm dừng</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>ngủ</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>đang đợi IPC phản hồi</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>đang đợi đối tượng</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>chờ đợi địa chỉ người đứng giữa</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>lõi %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>bộ xử lý = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>lõi lý tưởng = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>che đậy tánh giống nhau = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>id luồng = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>quyền ưu tiên = %1(hiện tại) / %2(bình thường)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>các tick chạy cuối cùng = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>không đợi mutex</translation>
</message>
@@ -6186,7 +6231,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>đợi vì luồng</translation>
</message>
@@ -6194,7 +6239,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/vi_VN.ts b/dist/languages/vi_VN.ts
index e505ffadc..6cb640327 100644
--- a/dist/languages/vi_VN.ts
+++ b/dist/languages/vi_VN.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>Đang giao tiếp với máy chủ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>Huỷ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>Hãy chạm vào góc trên cùng&lt;br&gt;bên trái trên touchpad của bạn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>Giờ hãy chạm vào góc dưới cùng&lt;br&gt;bên phải trên touchpad của bạn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>Đã hoàn thành quá trình thiết lập!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>OK</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -357,7 +357,19 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Cài đặt CPU chỉ có sẵn khi không chạy trò chơi.</translation>
</message>
@@ -498,11 +510,38 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>Cài đặt CPU chỉ có sẵn khi không chạy trò chơi.</translation>
</message>
@@ -660,7 +699,12 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**Sẽ tự động thiết lập lại khi tắt yuzu.</translation>
</message>
@@ -710,78 +754,78 @@ p, li { white-space: pre-wrap; }
<translation>Thiết lập yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>Âm thanh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>Gỡ lỗi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>Hệ thống tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>Chung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>Đồ hoạ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>Đồ họa Nâng cao</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>Phím tắt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>Hồ sơ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>Mạng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>Hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>Danh sách trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1016,12 +1060,12 @@ p, li { white-space: pre-wrap; }
<translation>Đặt lại mọi tùy chỉnh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Quá trình này sẽ thiết lập lại toàn bộ tùy chỉnh và gỡ hết mọi cài đặt cho từng game riêng lẻ. Quá trình này không xóa đường dẫn tới thư mục game, hồ sơ, hay hồ sơ của thiết lập phím. Tiếp tục?</translation>
</message>
@@ -1250,7 +1294,7 @@ p, li { white-space: pre-wrap; }
<translation>Màu nền:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly Shaders, Chỉ Cho NVIDIA)</translation>
</message>
@@ -1818,7 +1862,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>Cần trái</translation>
</message>
@@ -1912,14 +1956,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1938,7 +1982,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>Cộng</translation>
</message>
@@ -1951,15 +1995,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2016,230 +2060,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>Cần phải</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>Bỏ trống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[không đặt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>Chọn một giá trị giữa 0% và 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>Thiết lập Cần Điều Khiển</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Sau khi bấm OK, di chuyển cần sang ngang, rồi sau đó sang dọc.
Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần sang dọc trước, rồi sang ngang.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Tay cầm Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>Joycon đôi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>Joycon Trái</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>Joycon Phải</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>Cầm tay</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>Tay cầm GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>Bắt đầu / Tạm ngưng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>Lắc!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[Chờ]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>Hồ sơ mới</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>Nhập tên hồ sơ:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>Tạo Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>Tên hồ sơ không hợp lệ!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Quá trình tạo hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>Xóa Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Quá trình xóa hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>Nạp Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Quá trình nạp hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>Lưu Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Quá trình lưu hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
@@ -2287,7 +2331,7 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>Cài đặt</translation>
</message>
@@ -2323,7 +2367,7 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>Thử nghiệm</translation>
</message>
@@ -2338,82 +2382,82 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Xóa Server</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Tìm hiểu thêm&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>Cổng có kí tự không hợp lệ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>Cổng phải từ 0 đến 65353</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>Địa chỉ IP không hợp lệ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>Server UDP đã tồn tại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>Không thể vượt quá 8 server</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>Thử nghiệm</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>Cài đặt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>Thử Nghiệm Thành Công</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>Nhận được dữ liệu từ server!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>Thử Nghiệm Thất Bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>Không thể nhận được dữ liệu hợp lệ từ server. &lt;br&gt;Hãy chắc chắn server được thiết lập chính xác, từ địa chỉ lẫn cổng phải được thiết lập đúng.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation type="unfinished"/>
</message>
@@ -2441,7 +2485,7 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>Trống</translation>
</message>
@@ -2494,47 +2538,47 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Nhà Phát Hành</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>Bổ Sung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>Tổng Quan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>Hệ Thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>Đồ Họa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>Đồ Họa Nâng Cao</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>Âm Thanh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>Thuộc tính</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation type="unfinished"/>
</message>
@@ -2552,12 +2596,12 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Bổ Sung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>Tên bản vá</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>Phiên Bản</translation>
</message>
@@ -2615,7 +2659,7 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Chỉ có thể quản lí hồ sơ khi game không chạy.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2623,92 +2667,92 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>Điền Tên</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>Người Dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>Chọn tên cho người dùng mới</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>Chọn một tên mới:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>Xác nhận xóa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>Bạn đang xóa người dùng &quot;%1&quot;. Bạn chắc chứ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>Chọn Ảnh cho Người Dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>Ảnh JPEG (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>Lỗi khi xóa ảnh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>Có lỗi khi ghi đè ảnh trước tại: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>Lỗi xóa ảnh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>Không thể xóa ảnh hiện tại: %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>Lỗi khi tạo thư mục chứa ảnh người dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>Không thể tạo thư mục %1 để chứa ảnh người dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>Lỗi chép ảnh người dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>Không thể chép ảnh từ %1 sang %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>Lỗi thu phóng ảnh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>Không thể thu phóng ảnh</translation>
</message>
@@ -3152,17 +3196,17 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Cài đặt hệ thống chỉ khả dụng khi trò chơi không chạy.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>Điều này sẽ thay thế Switch ảo hiện tại của bạn sang một cái mới. Switch ảo hiện tại của bạn sẽ không thể hồi phục lại. Điều này có thể gây ra tác dụng không mong muốn trong trò chơi. Điều này có thể gây thất bại, nếu bạn đang sử dụng thiết lập lưu trữ đã lỗi thời. Tiếp tục?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>Chú ý</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>ID của máy: 0x%1</translation>
</message>
@@ -3277,54 +3321,54 @@ Drag points to change position, or double-click table cells to edit values.</sou
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>Hồ sơ mới</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[nhấn nút]</translation>
</message>
@@ -3762,892 +3806,893 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Dữ liệu ẩn danh được thu thập&lt;/a&gt;để hỗ trợ cải thiện yuzu. &lt;br/&gt;&lt;br/&gt;Bạn có muốn chia sẽ dữ liệu sử dụng cho chúng tôi?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>Viễn trắc</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Tốc độ giả lập hiện tại. Giá trị cao hơn hoặc thấp hơn 100% chỉ ra giả lập sẽ chạy nhanh hơn hoặc chậm hơn trên máy Switch</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Có bao nhiêu khung hình trên mỗi giây mà trò chơi đang hiển thị. Điều này sẽ thay đổi từ trò chơi này đến trò chơi kia và khung cảnh này đến khung cảnh kia.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Thời gian mà giả lập lấy từ khung hình Switch, sẽ không kể đến giới hạn khung hình hoặc v-sync. Đối với tốc độ tối đa mà giả lập nhận được nhiều nhất là ở độ khoảng 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;Tạm dừng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>Chú ý định dạng trò chơi đã lỗi thời</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Bạn đang sử dụng định dạng danh mục ROM giải mã cho trò chơi này, và đó là một định dạng lỗi thời đã được thay thế bởi những thứ khác như NCA, NAX, XCI, hoặc NSP. Danh mục ROM giải mã có thể thiếu biểu tượng, metadata, và hỗ trợ cập nhật.&lt;br&gt;&lt;br&gt;Để giải thích về các định dạng khác nhau của Switch mà yuzu hỗ trợ, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;vui lòng kiểm tra trên wiki của chúng tôi&lt;/a&gt;. Thông báo này sẽ không hiển thị lại lần sau.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>Xảy ra lỗi khi đang nạp ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>Định dạng ROM này không hỗ trợ.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>Đã xảy ra lỗi khi khởi tạo lõi video.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Đã xảy ra lỗi không xác định. Vui lòng kiểm tra sổ ghi chép để biết thêm chi tiết.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>Xảy ra lỗi khi mở %1 thư mục</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>Thư mục này không tồn tại!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>Cập nhật</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>Khai thác RomFS không thành công!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Đã xảy ra lỗi khi sao chép tệp tin RomFS hoặc người dùng đã hủy bỏ hoạt động này.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>Sườn</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>Chọn chế độ kết xuất RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Vui lòng chọn RomFS mà bạn muốn kết xuất như thế nào.&lt;br&gt;Đầy đủ sẽ sao chép toàn bộ tệp tin vào một danh mục mới trong khi &lt;br&gt;bộ xương chỉ tạo kết cấu danh mục.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>Khai thác RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>Hủy bỏ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Khai thác RomFS thành công!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>Các hoạt động đã hoàn tất thành công.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>Chọn danh mục</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>Thuộc tính</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>Thuộc tính của trò chơi không thể nạp được.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Thực thi Switch (%1);;Tất cả tệp tin (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>Nạp tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>Mở danh mục ROM đã trích xuất</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>Danh mục đã chọn không hợp lệ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Danh mục mà bạn đã chọn không có chứa tệp tin &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Những tệp tin Switch cài được (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Đang cài đặt tệp tin &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>Hệ thống ứng dụng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>Hệ thống lưu trữ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>Cập nhật hệ thống ứng dụng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>Gói phần mềm (Loại A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>Gói phần mềm (Loại B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>Trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>Cập nhật trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>Nội dung trò chơi có thể tải xuống</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Tiêu đề Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>Chọn loại NCA để cài đặt...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Vui lòng chọn loại tiêu đề mà bạn muốn cài đặt NCA này:
(Trong hầu hết trường hợp, chọn mặc định &apos;Game&apos; là tốt nhất.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>Cài đặt đã không thành công</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Loại tiêu đề NCA mà bạn chọn nó không hợp lệ.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>Không tìm thấy tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>Không tìm thấy &quot;%1&quot; tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>Thiếu tài khoản yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Để gửi trường hợp thử nghiệm trò chơi tương thích, bạn phải liên kết tài khoản yuzu.&lt;br&gt;&lt;br/&gt;Để liên kết tải khoản yuzu của bạn, hãy đến Giả lập &amp;gt; Thiết lập &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Tệp tin Amiibo (%1);; Tất cả tệp tin (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>Nạp dữ liệu Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>Xảy ra lỗi khi mở dữ liệu tệp tin Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>Không thể mở tệp tin Amiibo &quot;%1&quot; để đọc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>Xảy ra lỗi khi đọc dữ liệu tệp tin Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>Hoàn toàn không thể đọc được dữ liệu Amiibo. Dự kiến byte sẽ đọc là %1, nhưng byte chỉ có thể đọc là %2.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>Xảy ra lỗi khi nạp dữ liệu Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>Không thể nạp dữ liệu Amiibo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>Chụp ảnh màn hình</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>Hình ảnh PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>&amp;Bắt đầu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>Tốc độ: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>Tốc độ: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>Trò chơi: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>Khung hình: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>Trò chơi bạn muốn chạy yêu cầu một số tệp tin được sao chép từ thiết từ máy Switch của bạn trước khi bắt đầu chơi.&lt;br/&gt;&lt;br/&gt;Để biết thêm thông tin về cách sao chép những tệp tin đó, vui lòng tham khảo những wiki sau: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Sao chép dữ liệu hệ thống và font dùng chung từ máy Switch&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Bạn có muốn trở về danh sách trò chơi? Nếu bạn vẫn tiếp tục thì trò chơi có thể gặp sự cố, dữ liệu lưu tiến trình có thể bị lỗi, hoặc bạn sẽ gặp những lỗi khác.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>Không tìm thấy tệp tin hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>Bị thiếu tệp tin hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>yuzu không thể tìm thấy vị trí font dùng chung của Switch. %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>Không tìm thấy font dùng chung</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>Bị thiếu font dùng chung</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>Lỗi nghiêm trọng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu đã xảy ra lỗi nghiêm trọng, vui lòng kiểm tra sổ ghi chép để biết thêm chi tiết. Để biết thêm thông tin về cách truy cập sổ ghi chép, vui lòng xem trang sau: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;Làm sao để tải tệp tin sổ ghi chép lên&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Bạn có muốn trở về danh sách game? Tiếp tục có thể khiến giả lập gặp sự cố, gây hỏng dữ liệu đã lưu, hoặc gây các lỗi khác.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>Xác nhận mã khóa Rederivation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4664,37 +4709,37 @@ và phải tạo ra một bản sao lưu lại.
Điều này sẽ xóa mã khóa tự động tạo trên tệp tin của bạn và chạy lại mô-đun mã khóa derivation.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4703,39 +4748,39 @@ on your system&apos;s performance.</source>
vào hiệu suất hệ thống của bạn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>Mã khóa xuất phát</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>Chọn thư mục để sao chép RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Vui lòng chọn RomFS mà bạn muốn sao chép.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Bạn có chắc chắn muốn đóng yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Bạn có chắc rằng muốn dừng giả lập? Bất kì tiến trình nào chưa được lưu sẽ bị mất.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4747,38 +4792,38 @@ Bạn có muốn bỏ qua yêu cầu đó và thoát luôn không?</translation>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>Không có sẵn OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>Đã xảy ra lỗi khi khởi tạo OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
@@ -4940,77 +4985,77 @@ Bạn có muốn bỏ qua yêu cầu đó và thoát luôn không?</translation>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>Tốt nhất</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>Có thể chơi một cách mượt mà mà không có lỗi âm thanh hoặc đồ họa nào, tất cả các chức năng đều hoạt động như ý mà không cần bất kì tinh chỉnh nào.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>Tốt</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>Có thể chơi từ đầu đến cuối nhưng vẫn có một số lỗi nhỏ về đồ họa hoặc âm thanh. Có thể sẽ cần tới một vài tinh chỉnh nào đó.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>Tạm ổn</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>Tạm chơi được nhưng có lỗi đồ họa hoặc âm thanh một cách đáng kể, tuy vậy vẫn có thể chơi hết từ đầu đến cuối với một số tinh chỉnh.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>Không tốt</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>Chơi được nhưng có nhiều lỗi đồ họa hoặc âm thanh. Không thể chơi tiếp ở một số nơi nào đó do lỗi dù có tinh chỉnh thế nào đi nữa.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>Phần mở đầu/Menu</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>Hoàn toàn không thể chơi được do có nhiều lỗi đồ họa hoặc âm thanh. Không thể chơi tiếp sau khi bấm nút bắt đầu trò chơi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>Không hoạt động</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>Trò chơi sẽ thoát đột ngột khi khởi động.</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>Chưa ai thử</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>Trò chơi này chưa có ai thử cả.</translation>
</message>
@@ -5044,22 +5089,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>Xin hãy xác nhận đây là những tệp tin bạn muốn cài.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>Cài đặt một tệp tin cập nhật hoặc DLC mới sẽ thay thế những tệp cũ đã cài trước đó.</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>Cài đặt</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation type="unfinished"/>
</message>
@@ -5091,22 +5136,22 @@ Screen.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>Đang tải...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>Đang nạp shader %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>Đang mở...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>Ước tính thời gian %1</translation>
</message>
@@ -5382,284 +5427,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[chưa đặt nút]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>Mũ %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Trục %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>Nút %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[không xác định]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>Trái</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>Phải</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>Xuống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>Lên</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>Bắt đầu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>Cảm Ứng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[không sử dụng]</translation>
</message>
@@ -5700,7 +5745,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Tay cầm Pro Controller</translation>
</message>
@@ -5713,7 +5758,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>Joycon đôi</translation>
</message>
@@ -5726,7 +5771,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>Joycon Trái</translation>
</message>
@@ -5739,7 +5784,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>Joycon Phải</translation>
</message>
@@ -5767,7 +5812,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>Cầm tay</translation>
</message>
@@ -5888,32 +5933,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>Tay cầm GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
@@ -5952,7 +5997,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5960,17 +6005,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>Chọn một người dùng:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>Người Dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>Chọn hồ sơ</translation>
</message>
@@ -6019,7 +6064,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Chùm cuộc gọi</translation>
</message>
@@ -6027,17 +6072,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>chờ đợi loại trừ lẫn nhau 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>đã chờ đợi: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>chủ điều khiển: 0x%1</translation>
</message>
@@ -6045,12 +6090,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>chờ đợi toàn bộ đối tượng</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>chờ đợi một đối tượng đang theo dõi</translation>
</message>
@@ -6058,12 +6103,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>chờ đợi bởi vì không có luồng</translation>
</message>
@@ -6071,112 +6116,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>tạm dừng</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>ngủ</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>chờ đợi IPC phản hồi</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>chờ đợi đối tượng</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>chờ đợi địa chỉ người đứng giữa</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation> PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>lõi %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>bộ xử lý = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>lõi lý tưởng = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>che đậy tánh giống nhau = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>id luồng = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>quyền ưu tiên = %1(hiện tại) / %2(bình thường)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>lần chạy cuối cùng = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>không có chờ đợi loại trừ lẫn nhau</translation>
</message>
@@ -6184,7 +6229,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>chờ đợi bởi vì có luồng</translation>
</message>
@@ -6192,7 +6237,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/zh_CN.ts b/dist/languages/zh_CN.ts
index 54a5ff950..8f42c72bd 100644
--- a/dist/languages/zh_CN.ts
+++ b/dist/languages/zh_CN.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>正在与服务器通信…</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>触摸你的触摸板&lt;br&gt;的左上角。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>触摸你的触摸板&lt;br&gt;的右下角。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>配置完成!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>确定</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -357,7 +357,21 @@ p, li { white-space: pre-wrap; }
<translation>禁用地址空间检查</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation>
+&lt;div&gt;此选项仅通过 cmpxchg 指令来提高速度,以确保独占访问指令的安全性。请注意,这可能会导致死锁和其他问题。&lt;/div&gt;
+</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation>忽略全局监视器</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>只有当游戏不在运行时,CPU 设置才可用。</translation>
</message>
@@ -516,11 +530,45 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>启用宿主 MMU 模拟</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation>启用主机 MMU 仿真 (通用内存指令)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;此优化能提高正在运行的游戏对独占内存的访问速度。&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;启用此选项可使模拟独占内存的读/写直接在内存中进行,并利用主机的 MMU 机制。&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;禁用此功能将迫使所有的独占内存访问都通过软件 MMU 进行模拟。&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation>启用主机 MMU 仿真 (独占内存指令)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation>
+&lt;div style=&quot;white-space: nowrap&quot;&gt;此优化能提高正在运行的游戏对独占内存的访问速度。&lt;/div&gt;
+&lt;div style=&quot;white-space: nowrap&quot;&gt;启用此功能将减少独占内存访问条件下 fastmem 机制失败带来的性能开销。&lt;/div&gt;
+</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation>启用独占内存指令的重新编译</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>只有当游戏不在运行时,CPU 设置才可用。</translation>
</message>
@@ -678,7 +726,12 @@ p, li { white-space: pre-wrap; }
<translation>启用其他控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation>禁用 Web 应用程序**</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**该选项将在 yuzu 关闭时自动重置。</translation>
</message>
@@ -728,78 +781,78 @@ p, li { white-space: pre-wrap; }
<translation>yuzu 设置</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>声音</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>调试</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>文件系统</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>通用</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>图形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>高级图形选项</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>热键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>控制</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>用户配置</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>网络</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>系统</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>游戏列表</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>网络</translation>
</message>
@@ -1034,12 +1087,12 @@ p, li { white-space: pre-wrap; }
<translation>重置所有设置项</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>将重置模拟器所有设置并删除所有游戏的单独设置。这不会删除游戏目录、个人文件及输入配置文件。是否继续?</translation>
</message>
@@ -1268,7 +1321,7 @@ p, li { white-space: pre-wrap; }
<translation>背景颜色:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM(汇编着色器,仅限 NVIDIA 显卡)</translation>
</message>
@@ -1836,7 +1889,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>左摇杆</translation>
</message>
@@ -1930,14 +1983,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1956,7 +2009,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>+</translation>
</message>
@@ -1969,15 +2022,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2034,230 +2087,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>右摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>清除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[未设置]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>切换按键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>反转按钮</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>体感方向倒置</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>阈值设定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>选择一个介于 0% 和 100% 之间的值</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation>陀螺仪阈值设定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>映射摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>在按下确定后,首先水平移动你的手柄,然后垂直移动它。
如果要使体感方向倒置,首先垂直移动你的手柄,然后水平移动它。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation>中心轴</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>摇杆死区:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>摇杆灵敏度:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>双 Joycons 手柄</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>左 Joycon 手柄</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>右 Joycon 手柄</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>掌机模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>GameCube 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>精灵球 PLUS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>NES 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>SNES 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>N64 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>世嘉创世纪</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>开始 / 暂停</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>控制摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C 摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>摇动!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[等待中]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>保存自定义设置</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>输入配置文件名称:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>新建输入配置文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>输入的配置文件名称无效!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>新建输入配置文件 &quot;%1&quot; 失败</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>删除输入配置文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>删除输入配置文件 &quot;%1&quot; 失败</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>加载输入配置文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>加载输入配置文件 &quot;%1&quot; 失败</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>保存输入配置文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>保存输入配置文件 &quot;%1&quot; 失败</translation>
</message>
@@ -2305,7 +2358,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>设置</translation>
</message>
@@ -2341,7 +2394,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>测试</translation>
</message>
@@ -2356,82 +2409,82 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>移除服务器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;了解更多&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>端口号中包含无效字符</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>端口必须为 0 到 65353 之间</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>无效的 IP 地址</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>此 UDP 服务器已存在</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>最多只能添加 8 个服务器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>测试中</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>配置中</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>测试成功</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>已成功地从服务器获取数据。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>测试失败</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>无法从服务器获取数据。&lt;br&gt;请验证服务器是否正在运行,以及地址和端口是否配置正确。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>UDP 测试或触摸校准正在进行中。&lt;br&gt;请耐心等待。</translation>
</message>
@@ -2459,7 +2512,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>网络接口</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>无</translation>
</message>
@@ -2512,47 +2565,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>开发商</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>附加项</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>通用</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>系统</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>图形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>高级图形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>声音</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>属性</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>使用全局设置 (%1)</translation>
</message>
@@ -2570,12 +2623,12 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>附加项</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>补丁名称</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>版本</translation>
</message>
@@ -2633,7 +2686,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>只有当游戏不在运行时,才能进行用户配置的管理。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2641,92 +2694,92 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>输入用户名</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>用户</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>输入新用户的用户名:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>输入新的用户名:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>确认删除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>您确定要删除用户名为 “%1” 的用户吗?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>选择用户图像</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>JPEG 图像 (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>删除图像时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>尝试覆盖该用户的现有图像时出错: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>删除文件时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>无法删除文件: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>创建用户图像目录时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>无法创建存储用户图像的目录 %1 。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>复制用户图像时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>无法将图像从 %1 复制到 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>调整用户图像大小时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>无法调整图像的大小</translation>
</message>
@@ -3170,17 +3223,17 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>只有当游戏不在运行时,系统设置才可用。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>这将使用一个新的虚拟 Switch 取代你当前的虚拟 Switch。您当前的虚拟 Switch 将无法恢复。在部分游戏中可能会出现意外效果。如果你使用一个过时的配置存档这可能会失败。确定要继续吗?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>警告</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>设备 ID: 0x%1</translation>
</message>
@@ -3296,54 +3349,54 @@ Drag points to change position, or double-click table cells to edit values.</sou
<translation>删除点位</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>按键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>保存自定义设置</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>为新的自定义设置命名。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>删除自定义设置</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>真的要删除自定义设置 %1 吗?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>重命名自定义设置</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>新名称:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[请按一个键]</translation>
</message>
@@ -3781,896 +3834,898 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;我们收集匿名数据&lt;/a&gt;来帮助改进 yuzu 。&lt;br/&gt;&lt;br/&gt;您愿意和我们分享您的使用数据吗?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>使用数据共享</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>正在加载 Web 应用程序...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>禁用 Web 应用程序</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>禁用 web 程序将导致它在模拟窗口中不再显示。这可能导致未知的后果,且只能用于《超级马里奥 3D 全明星》中。您确定要禁用 web 程序吗?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation>禁用 Web 应用程序可能会发生未知的行为,且只能在《超级马里奥 3D 全明星》中使用。您确定要禁用 Web 应用程序吗?
+(您可以在调试选项中重新启用它。)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>当前正在构建的着色器数量</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>当前选定的分辨率缩放比例。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>当前的模拟速度。高于或低于 100% 的值表示模拟正在运行得比实际 Switch 更快或更慢。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>游戏当前运行的帧率。这将因游戏和场景的不同而有所变化。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>在不计算速度限制和垂直同步的情况下,模拟一个 Switch 帧的实际时间。若要进行全速模拟,这个数值不应超过 16.67 毫秒。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>主机模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>清除最近文件 (&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>继续 (&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>暂停 (&amp;P)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation>yuzu 正在运行中</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>过时游戏格式警告</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>目前使用的游戏为解体的 ROM 目录格式,这是一种过时的格式,已被其他格式替代,如 NCA,NAX,XCI 或 NSP。解体的 ROM 目录缺少图标、元数据和更新支持。&lt;br&gt;&lt;br&gt;有关 yuzu 支持的各种 Switch 格式的说明,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;请查看我们的 wiki&lt;/a&gt;。此消息将不会再次出现。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>加载 ROM 时出错!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>该 ROM 格式不受支持。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>在初始化视频核心时发生错误。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu 在运行视频核心时发生错误。这可能是由 GPU 驱动程序过旧造成的。有关详细信息,请参阅日志文件。关于日志文件的更多信息,请参考以下页面:&lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;如何上传日志文件&lt;/a&gt;。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>加载 ROM 时出错! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;请参考&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 快速导航&lt;/a&gt;以获取相关文件。&lt;br&gt;您可以参考 yuzu 的 wiki 页面&lt;/a&gt;或 Discord 社区&lt;/a&gt;以获得帮助。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>发生了未知错误。请查看日志了解详情。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>保存数据</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>Mod 数据</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>打开 %1 文件夹时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>文件夹不存在!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>打开可转移着色器缓存时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>为该游戏创建着色器缓存目录时失败。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>目录</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>游戏更新</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>删除项目</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>删除已安装的游戏 %1 ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>删除成功</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>成功删除已安装的游戏。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>删除 %1 时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>该游戏未安装于 NAND 中,无法删除。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>成功删除已安装的游戏更新。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>这个游戏没有任何已安装的更新。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>这个游戏没有任何已安装的 DLC 。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>成功删除游戏 %1 安装的 DLC 。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>删除 OpenGL 模式的着色器缓存?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>删除 Vulkan 模式的着色器缓存?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>删除所有的着色器缓存?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>移除自定义游戏设置?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>删除文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>删除着色器缓存时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>这个游戏的着色器缓存不存在。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>成功删除着色器缓存。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>删除着色器缓存失败。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>删除着色器缓存时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>着色器缓存删除成功。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>删除着色器缓存目录失败。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>移除自定义游戏设置时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>这个游戏的自定义设置不存在。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>成功移除自定义游戏设置。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>移除自定义游戏设置失败。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS 提取失败!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>复制 RomFS 文件时出错,或用户取消了操作。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>完整</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>框架</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>选择 RomFS 转储模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>请选择希望 RomFS 转储的方式。&lt;br&gt;“Full” 会将所有文件复制到新目录中,而&lt;br&gt;“Skeleton” 只会创建目录结构。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>%1 没有足够的空间用于提取 RomFS。请保持足够的空间或于模拟—&gt;设置—&gt;系统—&gt;文件系统—&gt;转储根目录中选择一个其他目录。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>正在提取 RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS 提取成功!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>操作成功完成。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>打开 %1 时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>选择目录</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>属性</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>无法加载该游戏的属性信息。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch 可执行文件 (%1);;所有文件 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>加载文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>打开提取的 ROM 目录</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>选择的目录无效</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>选择的目录不包含 “main” 文件。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>可安装的 Switch 文件 (*.nca *.nsp *.xci);;任天堂内容档案 (*.nca);;任天堂应用包 (*.nsp);;NX 卡带镜像 (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>安装文件</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation><numerusform>剩余 %n 个文件</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>正在安装文件 &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>安装结果</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>为了避免可能存在的冲突,我们不建议将游戏本体安装到 NAND 中。
此功能仅用于安装游戏更新和 DLC 。</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>最近安装了 %n 个文件
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n 个文件被覆盖
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n 个文件安装失败
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>系统应用</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>系统档案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>系统应用更新</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>固件包 (A型)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>固件包 (B型)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>游戏</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>游戏更新</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>游戏 DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>差量程序</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>选择 NCA 安装类型...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>请选择此 NCA 的程序类型:
(在大多数情况下,选择默认的“游戏”即可。)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>安装失败</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>选择的 NCA 程序类型无效。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>找不到文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>文件 &quot;%1&quot; 未找到</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>未设置 yuzu 账户</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>要提交游戏兼容性测试用例,您必须设置您的 yuzu 帐户。&lt;br&gt;&lt;br/&gt;要设置您的 yuzu 帐户,请转到模拟 &amp;gt; 设置 &amp;gt; 网络。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>打开 URL 时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>无法打开 URL : &quot;%1&quot; 。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>TAS 录制</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>覆盖玩家 1 的文件?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>检测到无效配置</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>掌机手柄无法在主机模式中使用。将会选择 Pro controller。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation>错误</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation>当前游戏并没有在寻找 Amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation>当前的 Amiibo 已被移除。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo 文件 (%1);; 全部文件 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>加载 Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>打开 Amiibo 数据文件时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>无法打开 Amiibo 文件 %1。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>读取 Amiibo 数据文件时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>无法完全读取 Amiibo 数据。应读取 %1 个字节,但实际仅能读取 %2 个字节。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>加载 Amiibo 数据时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>无法加载 Amiibo 数据。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>捕获截图</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG 图像 (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS 状态:正在运行 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>TAS 状态:正在录制 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS 状态:空闲 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>TAS 状态:无效</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>停止运行 (&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>开始 (&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>停止录制 (&amp;E)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>录制 (&amp;E)</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>正在编译 %n 个着色器文件</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>缩放比例: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>速度: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>速度: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>游戏: %1 FPS (未锁定)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>FPS: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>帧延迟:%1 毫秒</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU NORMAL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU HIGH</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU EXTREME</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>GPU ERROR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>邻近取样</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>双线性过滤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>双三线过滤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>高斯模糊</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>强制缩放</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>抗锯齿关</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>您正尝试启动的游戏需要从 Switch 转储的其他文件。&lt;br/&gt;&lt;br/&gt;有关转储这些文件的更多信息,请参阅以下 wiki 页面:&lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;。&lt;br/&gt;&lt;br/&gt;您要退出并返回至游戏列表吗?继续模拟可能会导致崩溃,存档损坏或其他错误。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>Yuzu 找不到 Switch 系统档案 %1 </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>Yuzu 找不到 Switch 系统档案: %1, %2 </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>未找到系统档案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>系统档案缺失</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>Yuzu 找不到 Swtich 共享字体 %1 </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>未找到共享字体</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>共享字体文件缺失</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>致命错误</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu 遇到了致命错误,请查看日志了解详情。有关查找日志的更多信息,请参阅以下页面:&lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;。&lt;br/&gt;&lt;br/&gt;您要退出并返回至游戏列表吗?继续模拟可能会导致崩溃,存档损坏或其他错误。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>发生致命错误</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>确认重新生成密钥</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4686,37 +4741,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
这将删除您自动生成的密钥文件并重新运行密钥生成模块。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>项目丢失</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- 丢失 BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - 丢失 BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation>- 丢失 PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>组件丢失</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>密钥缺失。&lt;br&gt;请查看&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 快速导航&lt;/a&gt;以获得你的密钥、固件和游戏。&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4725,39 +4780,39 @@ on your system&apos;s performance.</source>
您的系统性能。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>生成密钥</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>选择 RomFS 转储目标</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>请选择希望转储的 RomFS。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>您确定要关闭 yuzu 吗?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>您确定要停止模拟吗?未保存的进度将会丢失。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4769,38 +4824,38 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>OpenGL 模式不可用!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu 没有使用 OpenGL 进行编译。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>初始化 OpenGL 时出错!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>您的 GPU 可能不支持 OpenGL ,或者您没有安装最新的显卡驱动。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>初始化 OpenGL 4.6 时出错!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>您的 GPU 可能不支持 OpenGL 4.6 ,或者您没有安装最新的显卡驱动。&lt;br&gt;&lt;br&gt;GL 渲染器:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>您的 GPU 可能不支持某些必需的 OpenGL 扩展。请确保您已经安装最新的显卡驱动。&lt;br&gt;&lt;br&gt;GL 渲染器:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;不支持的扩展:&lt;br&gt;%2</translation>
</message>
@@ -4962,77 +5017,77 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>完美</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>游戏功能完美,没有音频或图形问题,所有测试功能按预期工作,无需需要任何解决办法。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>良好</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>游戏运行时会有非常轻微的图像或音频问题,但是能从头玩到尾。可能需要一些技巧才能完成游戏。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>一般</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>游戏运行时会有很多图像或音频错误,但是在使用一些特殊技巧之后能完整地完成游戏。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>较差</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>游戏能运行,但是会有大量图像或音频错误。即使使用一些技巧也无法通过游戏的某些区域。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>开场 / 菜单</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>游戏完全没法玩,图像或音频有重大错误。通过开场菜单后无法继续。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>无法打开</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>在启动游戏时直接崩溃了。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>未测试</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>游戏尚未经过测试。</translation>
</message>
@@ -5066,22 +5121,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>请确认这些您想要安装的文件。</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>安装游戏更新或 DLC 时,会覆盖以前安装的内容。</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>安装</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>安装文件到 NAND</translation>
</message>
@@ -5114,22 +5169,22 @@ Screen.</source>
<translation>所需时间: 5 分 4 秒</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>加载中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>正在加载着色器: %1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>启动中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>所需时间: %1</translation>
</message>
@@ -5409,284 +5464,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>SD 卡中安装的项目</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>NAND 中安装的项目</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>系统项目</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>添加游戏目录</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>收藏</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[未设置]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>方向键 %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>轴 %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>按键 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[未知]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>左</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>右</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>下</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>上</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>开始</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation>○</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation>╳</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation>□</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation>Δ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>分享</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>选项</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>触摸</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>鼠标滚轮</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation>后退</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation>前进</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation>任务键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation>额外按键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[未指定]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation>%1%2%3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[无效]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat 控制器 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation>%1%2轴 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2轴 %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2体感 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation>%1%2按键 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[未使用]</translation>
</message>
@@ -5727,7 +5782,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
@@ -5740,7 +5795,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>双 Joycons 手柄</translation>
</message>
@@ -5753,7 +5808,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>左 Joycon 手柄</translation>
</message>
@@ -5766,7 +5821,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>右 Joycon 手柄</translation>
</message>
@@ -5794,7 +5849,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>掌机模式</translation>
</message>
@@ -5915,32 +5970,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>GameCube 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>精灵球 PLUS</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation>NES 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation>SNES 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation>N64 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>世嘉创世纪</translation>
</message>
@@ -5985,7 +6040,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5993,17 +6048,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>选择一个用户:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>用户</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>选择用户</translation>
</message>
@@ -6056,7 +6111,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>调用栈</translation>
</message>
@@ -6064,17 +6119,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>正在等待互斥锁 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>等待中: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>所有者句柄: 0x%1</translation>
</message>
@@ -6082,12 +6137,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>正在等待所有对象</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>正在等待下列对象中的一个</translation>
</message>
@@ -6095,12 +6150,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>没有等待的线程</translation>
</message>
@@ -6108,112 +6163,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>可运行</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>暂停</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>睡眠</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>等待 IPC 响应</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>等待对象</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>等待条件变量</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>等待 address arbiter</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>等待挂起的线程</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>等待中</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>初始化完毕</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>线程终止</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>未知</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation>PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideal</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>核心 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>处理器 = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>理想核心 = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>关联掩码 = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>线程 ID = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>优先级 = %1 (实时) / %2 (正常)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>最后运行频率 = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>未等待互斥锁</translation>
</message>
@@ -6221,7 +6276,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>等待中的线程</translation>
</message>
@@ -6229,7 +6284,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>等待树 (&amp;W)</translation>
</message>
diff --git a/dist/languages/zh_TW.ts b/dist/languages/zh_TW.ts
index 1e671bbdc..e703b62cb 100644
--- a/dist/languages/zh_TW.ts
+++ b/dist/languages/zh_TW.ts
@@ -52,32 +52,32 @@ p, li { white-space: pre-wrap; }
<context>
<name>CalibrationConfigurationDialog</name>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="29"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="24"/>
<source>Communicating with the server...</source>
<translation>與伺服器連線中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="25"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="44"/>
<source>Touch the top left corner &lt;br&gt;of your touchpad.</source>
<translation>觸碰您的觸控板&lt;br&gt;左上角</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="47"/>
<source>Now touch the bottom right corner &lt;br&gt;of your touchpad.</source>
<translation>接著觸碰您的觸控板&lt;br&gt;右下角</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="50"/>
<source>Configuration completed!</source>
<translation>設定完成!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="58"/>
<source>OK</source>
<translation>確定</translation>
</message>
@@ -230,7 +230,7 @@ p, li { white-space: pre-wrap; }
<translation>0 %</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="97"/>
+ <location filename="../../src/yuzu/configuration/configure_audio.cpp" line="95"/>
<source>%1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>%1%</translation>
@@ -359,7 +359,21 @@ p, li { white-space: pre-wrap; }
<translation>停用位址空間檢查</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="174"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="156"/>
+ <source>
+ &lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
+ </source>
+ <translation>
+&lt;div&gt;此选项仅通过 cmpxchg 指令来提高速度,以确保独占访问指令的安全性。请注意,这可能会导致死锁和其他问题。&lt;/div&gt;
+</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
+ <source>Ignore global monitor</source>
+ <translation>忽略全局监视器</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu.ui" line="186"/>
<source>CPU settings are available only when game is not running.</source>
<translation>僅在遊戲未執行時才能調整 CPU 設定</translation>
</message>
@@ -518,11 +532,45 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
- <source>Enable Host MMU Emulation</source>
- <translation>Enable Host MMU Emulation</translation>
+ <source>Enable Host MMU Emulation (general memory instructions)</source>
+ <translation>启用宿主机 MMU 仿真 (通用内存指令)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
+ </source>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;此优化能提高正在运行的游戏对独占内存的访问速度。&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;启用此选项可使模拟独占内存的读/写直接在内存中进行,并利用主机的 MMU 机制。&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;禁用此功能将迫使所有的独占内存访问都通过软件 MMU 进行模拟。&lt;/div&gt;
+ </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
+ <source>Enable Host MMU Emulation (exclusive memory instructions)</source>
+ <translation>启用主机 MMU 仿真 (独占内存指令)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="172"/>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="168"/>
+ <source>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
+ </source>
+ <translation>
+&lt;div style=&quot;white-space: nowrap&quot;&gt;此优化能提高正在运行的游戏对独占内存的访问速度。&lt;/div&gt;
+&lt;div style=&quot;white-space: nowrap&quot;&gt;启用此功能将减少独占内存访问条件下 fastmem 机制失败带来的性能开销。&lt;/div&gt;
+</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
+ <source>Enable recompilation of exclusive memory instructions</source>
+ <translation>启用独占内存指令的重新编译</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="199"/>
<source>CPU settings are available only when game is not running.</source>
<translation>僅在遊戲未執行時才能調整 CPU 設定</translation>
</message>
@@ -680,7 +728,12 @@ p, li { white-space: pre-wrap; }
<translation>啟用所有控制器類型</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_debug.ui" line="232"/>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="224"/>
+ <source>Disable Web Applet**</source>
+ <translation>禁用 Web 应用程序**</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_debug.ui" line="239"/>
<source>**This will be reset automatically when yuzu closes.</source>
<translation>**當 yuzu 關閉時會自動重設。</translation>
</message>
@@ -730,78 +783,78 @@ p, li { white-space: pre-wrap; }
<translation>yuzu 設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="162"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>Audio</source>
<translation>音訊</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
<source>Debug</source>
<translation>偵錯</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
<source>Filesystem</source>
<translation>檔案系統</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="149"/>
<source>General</source>
<translation>一般</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="161"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
<source>Graphics</source>
<translation>圖形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>GraphicsAdvanced</source>
<translation>進階圖形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Hotkeys</source>
<translation>快速鍵</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="163"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
<source>Controls</source>
<translation>控制</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
<source>Profiles</source>
<translation>設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>Network</source>
<translation>網路</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="70"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="151"/>
<source>System</source>
<translation>系統</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
<source>Game List</source>
<translation>遊戲清單</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Web</source>
<translation>網路服務</translation>
</message>
@@ -1036,12 +1089,12 @@ p, li { white-space: pre-wrap; }
<translation>重設所有設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="79"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="80"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>這將重設所有遊戲的額外設定,但不會刪除遊戲資料夾、使用者設定檔、輸入設定檔,是否繼續?</translation>
</message>
@@ -1270,7 +1323,7 @@ p, li { white-space: pre-wrap; }
<translation>背景顏色:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="34"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="33"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM(組合語言著色器,僅限 NVIDIA)</translation>
</message>
@@ -1838,7 +1891,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="291"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1229"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
<source>Left Stick</source>
<translation>左搖桿</translation>
</message>
@@ -1932,14 +1985,14 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1251"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1290"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1232"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1306"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1345"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1224"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -1958,7 +2011,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1545"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1584"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1223"/>
<source>Plus</source>
<translation>+</translation>
</message>
@@ -1971,15 +2024,15 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1698"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1737"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1226"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1753"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1792"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1227"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1225"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2036,230 +2089,230 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2516"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1228"/>
<source>Right Stick</source>
<translation>右搖桿</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="342"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="559"/>
<source>Clear</source>
<translation>清除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="346"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="563"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="344"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="411"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="487"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="561"/>
<source>[not set]</source>
<translation>[未設定]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="349"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="347"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="564"/>
<source>Toggle button</source>
<translation>切換按鍵</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="355"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="575"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="353"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="573"/>
<source>Invert button</source>
<translation>無效按鈕</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="363"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="517"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="361"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="515"/>
<source>Invert axis</source>
<translation>方向反轉</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="369"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="367"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Set threshold</source>
<translation>設定閾值</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="373"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="371"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="418"/>
<source>Choose a value between 0% and 100%</source>
<translation>選擇介於 0% 和 100% 之間的值</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
<source>Set gyro threshold</source>
<translation>陀螺仪阈值设定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="462"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="460"/>
<source>Map Analog Stick</source>
<translation>搖桿映射</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="463"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="461"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>按下確定後,先水平再上下移動您的搖桿。
要反轉方向,則先上下再水平移動您的搖桿。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="491"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="489"/>
<source>Center axis</source>
<translation>中心轴</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="599"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="954"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="597"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="952"/>
<source>Deadzone: %1%</source>
<translation>無感帶:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="608"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="959"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="606"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="957"/>
<source>Modifier Range: %1%</source>
<translation>輕推靈敏度:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="634"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="984"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="632"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="982"/>
<source>Pro Controller</source>
<translation>Pro 手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="988"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="986"/>
<source>Dual Joycons</source>
<translation>雙 Joycon 手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="992"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="990"/>
<source>Left Joycon</source>
<translation>左 Joycon 手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="996"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="994"/>
<source>Right Joycon</source>
<translation>右 Joycon 手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1000"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="998"/>
<source>Handheld</source>
<translation>掌機模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1004"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1002"/>
<source>GameCube Controller</source>
<translation>GameCube 手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1013"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1011"/>
<source>Poke Ball Plus</source>
<translation>精靈球 PLUS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1017"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1015"/>
<source>NES Controller</source>
<translation>NES 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1021"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1019"/>
<source>SNES Controller</source>
<translation>SNES 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1025"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1023"/>
<source>N64 Controller</source>
<translation>N64 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1029"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1027"/>
<source>Sega Genesis</source>
<translation>Mega Drive</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1231"/>
<source>Start / Pause</source>
<translation>開始 / 暫停</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1234"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1237"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1235"/>
<source>Control Stick</source>
<translation>控制搖桿</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1238"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1236"/>
<source>C-Stick</source>
<translation>C 搖桿</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>Shake!</source>
<translation>搖動!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
<source>[waiting]</source>
<translation>[等待中]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>New Profile</source>
<translation>新增設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1423"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1421"/>
<source>Enter a profile name:</source>
<translation>輸入設定檔名稱:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1431"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1439"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1429"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1437"/>
<source>Create Input Profile</source>
<translation>建立輸入設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1432"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1430"/>
<source>The given profile name is not valid!</source>
<translation>輸入的設定檔名稱無效!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1440"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1438"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>建立輸入設定檔「%1」失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1460"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1458"/>
<source>Delete Input Profile</source>
<translation>刪除輸入設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1461"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1459"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>刪除輸入設定檔「%1」失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1483"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1481"/>
<source>Load Input Profile</source>
<translation>載入輸入設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1484"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1482"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>載入輸入設定檔「%1」失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1503"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1501"/>
<source>Save Input Profile</source>
<translation>儲存輸入設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1504"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1502"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>儲存輸入設定檔「%1」失敗</translation>
</message>
@@ -2307,7 +2360,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="46"/>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="247"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="242"/>
<source>Configure</source>
<translation>設定</translation>
</message>
@@ -2343,7 +2396,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_motion_touch.ui" line="201"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="270"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
<source>Test</source>
<translation>測試</translation>
</message>
@@ -2358,82 +2411,82 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>移除伺服器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="88"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;Learn More&lt;/span&gt;&lt;/a&gt;</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/wiki/using-a-controller-or-android-phone-for-motion-or-touch-input&apos;&gt;&lt;span style=&quot;text-decoration: underline; color:#039be5;&quot;&gt;了解更多&lt;/span&gt;&lt;/a&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="168"/>
<source>%1:%2</source>
<translation>%1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="292"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="287"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="173"/>
<source>Port number has invalid characters</source>
<translation>連線埠中包含無效字元</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="177"/>
<source>Port has to be in range 0 and 65353</source>
<translation>連線埠必須為 0 到 65353 之間</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="186"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="181"/>
<source>IP address is not valid</source>
<translation>無效的 IP 位址</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="187"/>
<source>This UDP server already exists</source>
<translation>此 UDP 伺服器已存在</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="193"/>
<source>Unable to add more than 8 servers</source>
<translation>最多只能新增 8 個伺服器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="214"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="209"/>
<source>Testing</source>
<translation>測試中</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="225"/>
<source>Configuring</source>
<translation>設定中</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="261"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="256"/>
<source>Test Successful</source>
<translation>測試成功</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="262"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="257"/>
<source>Successfully received data from the server.</source>
<translation>已成功從伺服器取得資料</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="264"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="259"/>
<source>Test Failed</source>
<translation>測試失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="265"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="260"/>
<source>Could not receive valid data from the server.&lt;br&gt;Please verify that the server is set up correctly and the address and port are correct.</source>
<translation>無法從伺服器取得有效的資料。&lt;br&gt;請檢查伺服器是否正確設定以及位址和連接埠是否正確。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="293"/>
+ <location filename="../../src/yuzu/configuration/configure_motion_touch.cpp" line="288"/>
<source>UDP Test or calibration configuration is in progress.&lt;br&gt;Please wait for them to finish.</source>
<translation>UDP 測試或觸控校正進行中。&lt;br&gt;請耐心等候。</translation>
</message>
@@ -2461,7 +2514,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>網路卡</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_network.cpp" line="17"/>
+ <location filename="../../src/yuzu/configuration/configure_network.cpp" line="16"/>
<source>None</source>
<translation>無</translation>
</message>
@@ -2514,47 +2567,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>出版商</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
<source>Add-Ons</source>
<translation>延伸模組</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
<source>General</source>
<translation>一般</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
<source>System</source>
<translation>系統</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>Graphics</source>
<translation>圖形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>Adv. Graphics</source>
<translation>進階圖形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>Audio</source>
<translation>音訊</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Properties</source>
<translation>屬性</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configuration_shared.cpp" line="92"/>
<source>Use global configuration (%1)</source>
<translation>使用全域設定 (%1)</translation>
</message>
@@ -2572,12 +2625,12 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>延伸模組</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="47"/>
<source>Patch Name</source>
<translation>延伸模組名稱</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game_addons.cpp" line="48"/>
<source>Version</source>
<translation>版本</translation>
</message>
@@ -2635,7 +2688,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>僅在遊戲未執行時才能修改使用者設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="53"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -2643,92 +2696,92 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="71"/>
<source>Enter Username</source>
<translation>輸入使用者名稱</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="134"/>
<source>Users</source>
<translation>使用者</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="196"/>
<source>Enter a username for the new user:</source>
<translation>輸入新使用者的名稱</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="218"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="216"/>
<source>Enter a new username:</source>
<translation>輸入新的使用者名稱</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
<source>Confirm Delete</source>
<translation>確認刪除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="244"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="242"/>
<source>You are about to delete user with name &quot;%1&quot;. Are you sure?</source>
<translation>您確定要移除使用者「%1」嗎?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="271"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="269"/>
<source>Select User Image</source>
<translation>選擇使用者圖片</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="270"/>
<source>JPEG Images (*.jpg *.jpeg)</source>
<translation>JPEG圖片 (*.jpg *.jpeg)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="281"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="279"/>
<source>Error deleting image</source>
<translation>刪除圖片時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="282"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="280"/>
<source>Error occurred attempting to overwrite previous image at: %1.</source>
<translation>嘗試覆寫之前的圖片時發生錯誤:%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="290"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="288"/>
<source>Error deleting file</source>
<translation>刪除檔案時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="291"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="289"/>
<source>Unable to delete existing file: %1.</source>
<translation>無法刪除檔案:%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="296"/>
<source>Error creating user image directory</source>
<translation>建立使用者圖片資料夾時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
<source>Unable to create directory %1 for storing user images.</source>
<translation>無法建立儲存使用者圖片的資料夾 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="304"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="302"/>
<source>Error copying user image</source>
<translation>複製使用者圖片時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="305"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="303"/>
<source>Unable to copy image from %1 to %2</source>
<translation>無法將圖片從 %1 複製到 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="312"/>
<source>Error resizing user image</source>
<translation>調整使用者圖片大小時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
+ <location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="313"/>
<source>Unable to resize image</source>
<translation>無法調整圖片大小</translation>
</message>
@@ -3172,17 +3225,17 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>僅在遊戲未執行時才能修改使用者設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="164"/>
<source>This will replace your current virtual Switch with a new one. Your current virtual Switch will not be recoverable. This might have unexpected effects in games. This might fail, if you use an outdated config savegame. Continue?</source>
<translation>這會使用新的虛擬 Switch 取代你目前的虛擬 Switch,且將無法還原目前的虛擬 Switch。在部分遊戲中可能會出現意外後果。此動作可能因您使用過時的設定存檔而失敗。確定要繼續嗎?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="168"/>
<source>Warning</source>
<translation>警告</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_system.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_system.cpp" line="176"/>
<source>Console ID: 0x%1</source>
<translation>主機 ID:0x%1</translation>
</message>
@@ -3298,54 +3351,54 @@ Drag points to change position, or double-click table cells to edit values.</sou
<translation>刪除定位點</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Button</source>
<translation>按鈕</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>X</source>
<comment>X axis</comment>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="79"/>
<source>Y</source>
<comment>Y axis</comment>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>New Profile</source>
<translation>新增設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="197"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="196"/>
<source>Enter the name for the new profile.</source>
<translation>輸入新設定檔的名稱</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete Profile</source>
<translation>刪除設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="208"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="207"/>
<source>Delete profile %1?</source>
<translation>是否刪除設定檔 %1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>Rename Profile</source>
<translation>重新命名設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="221"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="220"/>
<source>New name:</source>
<translation>新名稱:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="232"/>
<source>[press key]</source>
<translation>[按下按鍵]</translation>
</message>
@@ -3783,895 +3836,897 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="180"/>
+ <location filename="../../src/yuzu/main.cpp" line="176"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>我們&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;蒐集匿名的資料&lt;/a&gt;以幫助改善 yuzu。&lt;br/&gt;&lt;br/&gt;您願意和我們分享您的使用資料嗎?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="183"/>
+ <location filename="../../src/yuzu/main.cpp" line="179"/>
<source>Telemetry</source>
<translation>遙測</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="603"/>
+ <location filename="../../src/yuzu/main.cpp" line="606"/>
<source>Loading Web Applet...</source>
<translation>載入 Web Applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="650"/>
<location filename="../../src/yuzu/main.cpp" line="653"/>
+ <location filename="../../src/yuzu/main.cpp" line="656"/>
<source>Disable Web Applet</source>
<translation>停用 Web Applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="654"/>
- <source>Disabling the web applet will cause it to not be shown again for the rest of the emulated session. This can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?</source>
- <translation>停用 web applet 會導致不再顯示於模擬視窗。可能導致非預期後果,且只能用於《超級瑪利歐 3D 收藏輯》。您確定要停用 web applet?</translation>
+ <location filename="../../src/yuzu/main.cpp" line="657"/>
+ <source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
+(This can be re-enabled in the Debug settings.)</source>
+ <translation>禁用 Web 应用程序可能会导致未知的行为,且只能在《超级马里奥 3D 全明星》中使用。您确定要禁用 Web 应用程序吗?
+(您可以在调试选项中重新启用它。)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="757"/>
+ <location filename="../../src/yuzu/main.cpp" line="760"/>
<source>The amount of shaders currently being built</source>
<translation>目前正在建構的著色器數量</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="759"/>
+ <location filename="../../src/yuzu/main.cpp" line="762"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>目前選擇的解析度縮放比例。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="762"/>
+ <location filename="../../src/yuzu/main.cpp" line="765"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>目前的模擬速度。高於或低於 100% 表示比實際 Switch 執行速度更快或更慢。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="765"/>
+ <location filename="../../src/yuzu/main.cpp" line="768"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>遊戲即時 FPS。會因遊戲和場景的不同而改變。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="769"/>
+ <location filename="../../src/yuzu/main.cpp" line="772"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>在不考慮幀數限制和垂直同步的情況下模擬一個 Switch 畫格的實際時間,若要全速模擬,此數值不得超過 16.67 毫秒。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="826"/>
+ <location filename="../../src/yuzu/main.cpp" line="829"/>
<source>DOCK</source>
<translation>TV 模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>VULKAN</source>
<translation>VULKAN</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="845"/>
+ <location filename="../../src/yuzu/main.cpp" line="848"/>
<source>OPENGL</source>
<translation>OPENGL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="908"/>
+ <location filename="../../src/yuzu/main.cpp" line="911"/>
<source>&amp;Clear Recent Files</source>
<translation>清除最近的檔案(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1179"/>
+ <location filename="../../src/yuzu/main.cpp" line="1182"/>
<source>&amp;Continue</source>
<translation>繼續(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1181"/>
+ <location filename="../../src/yuzu/main.cpp" line="1184"/>
<source>&amp;Pause</source>
<translation>&amp;暫停</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1222"/>
+ <location filename="../../src/yuzu/main.cpp" line="1225"/>
<source>yuzu is running a game</source>
<extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation>yuzu 正在執行中</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1306"/>
+ <location filename="../../src/yuzu/main.cpp" line="1310"/>
<source>Warning Outdated Game Format</source>
<translation>過時遊戲格式警告</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1307"/>
+ <location filename="../../src/yuzu/main.cpp" line="1311"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>此遊戲為解構的 ROM 資料夾格式,這是一種過時的格式,已被其他格式取代,如 NCA、NAX、XCI、NSP。解構的 ROM 目錄缺少圖示、中繼資料和更新支援。&lt;br&gt;&lt;br&gt;有關 yuzu 支援的各種 Switch 格式說明,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;請參閱我們的 wiki &lt;/a&gt;。此訊息將不再顯示。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1319"/>
- <location filename="../../src/yuzu/main.cpp" line="1353"/>
+ <location filename="../../src/yuzu/main.cpp" line="1323"/>
+ <location filename="../../src/yuzu/main.cpp" line="1357"/>
<source>Error while loading ROM!</source>
<translation>載入 ROM 時發生錯誤!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1320"/>
+ <location filename="../../src/yuzu/main.cpp" line="1324"/>
<source>The ROM format is not supported.</source>
<translation>此 ROM 格式不支援</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1324"/>
+ <location filename="../../src/yuzu/main.cpp" line="1328"/>
<source>An error occurred initializing the video core.</source>
<translation>初始化視訊核心時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1325"/>
+ <location filename="../../src/yuzu/main.cpp" line="1329"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu 在執行視訊核心時發生錯誤。 這可能是 GPU 驅動程序過舊造成的。 詳細資訊請查閱日誌檔案。 關於日誌檔案的更多資訊,請參考以下頁面:&lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;如何上傳日誌檔案&lt;/a&gt;。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1340"/>
+ <location filename="../../src/yuzu/main.cpp" line="1344"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>載入 ROM 時發生錯誤!%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1343"/>
+ <location filename="../../src/yuzu/main.cpp" line="1347"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;請參閱 &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 快速指引&lt;/a&gt;以重新傾印檔案。&lt;br&gt;您可以前往 yuzu 的 wiki&lt;/a&gt; 或 Discord 社群&lt;/a&gt;以獲得幫助。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1354"/>
+ <location filename="../../src/yuzu/main.cpp" line="1358"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>發生未知錯誤,請檢視紀錄了解細節。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1478"/>
+ <location filename="../../src/yuzu/main.cpp" line="1482"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1479"/>
+ <location filename="../../src/yuzu/main.cpp" line="1483"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1626"/>
+ <location filename="../../src/yuzu/main.cpp" line="1630"/>
<source>Save Data</source>
<translation>儲存資料</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1674"/>
+ <location filename="../../src/yuzu/main.cpp" line="1678"/>
<source>Mod Data</source>
<translation>模組資料</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1686"/>
+ <location filename="../../src/yuzu/main.cpp" line="1690"/>
<source>Error Opening %1 Folder</source>
<translation>開啟資料夾 %1 時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1687"/>
- <location filename="../../src/yuzu/main.cpp" line="2093"/>
+ <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="2097"/>
<source>Folder does not exist!</source>
<translation>資料夾不存在</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1699"/>
+ <location filename="../../src/yuzu/main.cpp" line="1703"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>開啟通用著色器快取位置時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1700"/>
+ <location filename="../../src/yuzu/main.cpp" line="1704"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>無法新增此遊戲的著色器快取資料夾。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1752"/>
+ <location filename="../../src/yuzu/main.cpp" line="1756"/>
<source>Contents</source>
<translation>內容</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1754"/>
+ <location filename="../../src/yuzu/main.cpp" line="1758"/>
<source>Update</source>
<translation>遊戲更新</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1756"/>
+ <location filename="../../src/yuzu/main.cpp" line="1760"/>
<source>DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Entry</source>
<translation>移除項目</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1763"/>
+ <location filename="../../src/yuzu/main.cpp" line="1767"/>
<source>Remove Installed Game %1?</source>
<translation>移除已安裝的遊戲「%1」?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1793"/>
- <location filename="../../src/yuzu/main.cpp" line="1809"/>
- <location filename="../../src/yuzu/main.cpp" line="1840"/>
- <location filename="../../src/yuzu/main.cpp" line="1901"/>
- <location filename="../../src/yuzu/main.cpp" line="1919"/>
- <location filename="../../src/yuzu/main.cpp" line="1942"/>
+ <location filename="../../src/yuzu/main.cpp" line="1797"/>
+ <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1844"/>
+ <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1946"/>
<source>Successfully Removed</source>
<translation>移除成功</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1794"/>
+ <location filename="../../src/yuzu/main.cpp" line="1798"/>
<source>Successfully removed the installed base game.</source>
<translation>成功移除已安裝的遊戲。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1797"/>
- <location filename="../../src/yuzu/main.cpp" line="1812"/>
- <location filename="../../src/yuzu/main.cpp" line="1835"/>
+ <location filename="../../src/yuzu/main.cpp" line="1801"/>
+ <location filename="../../src/yuzu/main.cpp" line="1816"/>
+ <location filename="../../src/yuzu/main.cpp" line="1839"/>
<source>Error Removing %1</source>
<translation>移除 %1 失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1798"/>
+ <location filename="../../src/yuzu/main.cpp" line="1802"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>此遊戲並非安裝在內部儲存空間,因此無法移除。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1810"/>
+ <location filename="../../src/yuzu/main.cpp" line="1814"/>
<source>Successfully removed the installed update.</source>
<translation>成功移除已安裝的遊戲更新。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1813"/>
+ <location filename="../../src/yuzu/main.cpp" line="1817"/>
<source>There is no update installed for this title.</source>
<translation>此遊戲沒有已安裝的更新。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1836"/>
+ <location filename="../../src/yuzu/main.cpp" line="1840"/>
<source>There are no DLC installed for this title.</source>
<translation>此遊戲沒有已安裝的 DLC。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1841"/>
+ <location filename="../../src/yuzu/main.cpp" line="1845"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>成功移除遊戲 %1 已安裝的 DLC。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1849"/>
+ <location filename="../../src/yuzu/main.cpp" line="1853"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>刪除 OpenGL 模式的著色器快取?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1851"/>
+ <location filename="../../src/yuzu/main.cpp" line="1855"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>刪除 Vulkan 模式的著色器快取?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1853"/>
+ <location filename="../../src/yuzu/main.cpp" line="1857"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>刪除所有的著色器快取?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1855"/>
+ <location filename="../../src/yuzu/main.cpp" line="1859"/>
<source>Remove Custom Game Configuration?</source>
<translation>移除額外遊戲設定?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1861"/>
+ <location filename="../../src/yuzu/main.cpp" line="1865"/>
<source>Remove File</source>
<translation>刪除檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1896"/>
- <location filename="../../src/yuzu/main.cpp" line="1904"/>
+ <location filename="../../src/yuzu/main.cpp" line="1900"/>
+ <location filename="../../src/yuzu/main.cpp" line="1908"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>刪除通用著色器快取時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1897"/>
- <location filename="../../src/yuzu/main.cpp" line="1915"/>
+ <location filename="../../src/yuzu/main.cpp" line="1901"/>
+ <location filename="../../src/yuzu/main.cpp" line="1919"/>
<source>A shader cache for this title does not exist.</source>
<translation>此遊戲沒有著色器快取</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1902"/>
+ <location filename="../../src/yuzu/main.cpp" line="1906"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>成功刪除著色器快取。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1905"/>
+ <location filename="../../src/yuzu/main.cpp" line="1909"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>刪除通用著色器快取失敗。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1914"/>
- <location filename="../../src/yuzu/main.cpp" line="1922"/>
+ <location filename="../../src/yuzu/main.cpp" line="1918"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>刪除通用著色器快取時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1920"/>
+ <location filename="../../src/yuzu/main.cpp" line="1924"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>成功刪除通用著色器快取。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1923"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>無法刪除著色器快取資料夾。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1936"/>
- <location filename="../../src/yuzu/main.cpp" line="1945"/>
+ <location filename="../../src/yuzu/main.cpp" line="1940"/>
+ <location filename="../../src/yuzu/main.cpp" line="1949"/>
<source>Error Removing Custom Configuration</source>
<translation>移除額外遊戲設定時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1937"/>
+ <location filename="../../src/yuzu/main.cpp" line="1941"/>
<source>A custom configuration for this title does not exist.</source>
<translation>此遊戲沒有額外設定。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1943"/>
+ <location filename="../../src/yuzu/main.cpp" line="1947"/>
<source>Successfully removed the custom game configuration.</source>
<translation>成功移除額外遊戲設定。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1946"/>
+ <location filename="../../src/yuzu/main.cpp" line="1950"/>
<source>Failed to remove the custom game configuration.</source>
<translation>移除額外遊戲設定失敗。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1953"/>
- <location filename="../../src/yuzu/main.cpp" line="2032"/>
+ <location filename="../../src/yuzu/main.cpp" line="1957"/>
+ <location filename="../../src/yuzu/main.cpp" line="2036"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS 抽取失敗!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1954"/>
+ <location filename="../../src/yuzu/main.cpp" line="1958"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>複製 RomFS 檔案時發生錯誤或使用者取消動作。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Full</source>
<translation>全部</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2012"/>
+ <location filename="../../src/yuzu/main.cpp" line="2016"/>
<source>Skeleton</source>
<translation>部分</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2014"/>
+ <location filename="../../src/yuzu/main.cpp" line="2018"/>
<source>Select RomFS Dump Mode</source>
<translation>選擇RomFS傾印模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2015"/>
+ <location filename="../../src/yuzu/main.cpp" line="2019"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>請選擇如何傾印 RomFS。&lt;br&gt;「全部」會複製所有檔案到新資料夾中,而&lt;br&gt;「部分」只會建立資料夾結構。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2033"/>
+ <location filename="../../src/yuzu/main.cpp" line="2037"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>%1 沒有足夠的空間用於抽取 RomFS。請確保有足夠的空間或於模擬 &gt; 設定 &gt;系統 &gt;檔案系統 &gt; 傾印根目錄中選擇其他資料夾。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
<source>Extracting RomFS...</source>
<translation>抽取 RomFS 中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2040"/>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2044"/>
+ <location filename="../../src/yuzu/main.cpp" line="2230"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2047"/>
+ <location filename="../../src/yuzu/main.cpp" line="2051"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS 抽取完成!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2048"/>
+ <location filename="../../src/yuzu/main.cpp" line="2052"/>
<source>The operation completed successfully.</source>
<translation>動作已成功完成</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2092"/>
+ <location filename="../../src/yuzu/main.cpp" line="2096"/>
<source>Error Opening %1</source>
<translation>開啟 %1 時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2101"/>
+ <location filename="../../src/yuzu/main.cpp" line="2105"/>
<source>Select Directory</source>
<translation>選擇資料夾</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2128"/>
+ <location filename="../../src/yuzu/main.cpp" line="2132"/>
<source>Properties</source>
<translation>屬性</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2129"/>
+ <location filename="../../src/yuzu/main.cpp" line="2133"/>
<source>The game properties could not be loaded.</source>
<translation>無法載入遊戲屬性</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2146"/>
+ <location filename="../../src/yuzu/main.cpp" line="2150"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch 執行檔 (%1);;所有檔案 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2150"/>
+ <location filename="../../src/yuzu/main.cpp" line="2154"/>
<source>Load File</source>
<translation>開啟檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2163"/>
+ <location filename="../../src/yuzu/main.cpp" line="2167"/>
<source>Open Extracted ROM Directory</source>
<translation>開啟已抽取的 ROM 資料夾</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2174"/>
+ <location filename="../../src/yuzu/main.cpp" line="2178"/>
<source>Invalid Directory Selected</source>
<translation>選擇的資料夾無效</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2175"/>
+ <location filename="../../src/yuzu/main.cpp" line="2179"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>選擇的資料夾未包含「main」檔案。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2185"/>
+ <location filename="../../src/yuzu/main.cpp" line="2189"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>可安装的 Switch 檔案 (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX 卡帶映像 (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2190"/>
+ <location filename="../../src/yuzu/main.cpp" line="2194"/>
<source>Install Files</source>
<translation>安裝檔案</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2234"/>
+ <location filename="../../src/yuzu/main.cpp" line="2238"/>
<source>%n file(s) remaining</source>
<translation><numerusform>剩餘 %n 個檔案</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2236"/>
+ <location filename="../../src/yuzu/main.cpp" line="2240"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>正在安裝檔案「%1」...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2282"/>
- <location filename="../../src/yuzu/main.cpp" line="2296"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
+ <location filename="../../src/yuzu/main.cpp" line="2300"/>
<source>Install Results</source>
<translation>安裝結果</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2287"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>為了避免潛在的衝突,不建議將遊戲本體安裝至內部儲存空間。
此功能僅用於安裝遊戲更新和 DLC。</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2289"/>
+ <location filename="../../src/yuzu/main.cpp" line="2293"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>最近安裝了 %n 個檔案
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2292"/>
+ <location filename="../../src/yuzu/main.cpp" line="2296"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n 個檔案被取代
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2294"/>
+ <location filename="../../src/yuzu/main.cpp" line="2298"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n 個檔案安裝失敗</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2395"/>
+ <location filename="../../src/yuzu/main.cpp" line="2399"/>
<source>System Application</source>
<translation>系統應用程式</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2396"/>
+ <location filename="../../src/yuzu/main.cpp" line="2400"/>
<source>System Archive</source>
<translation>系統檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2401"/>
<source>System Application Update</source>
<translation>系統應用程式更新</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2402"/>
<source>Firmware Package (Type A)</source>
<translation>韌體包(A型)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2399"/>
+ <location filename="../../src/yuzu/main.cpp" line="2403"/>
<source>Firmware Package (Type B)</source>
<translation>韌體包(B型)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2400"/>
+ <location filename="../../src/yuzu/main.cpp" line="2404"/>
<source>Game</source>
<translation>遊戲</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2401"/>
+ <location filename="../../src/yuzu/main.cpp" line="2405"/>
<source>Game Update</source>
<translation>遊戲更新</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2402"/>
+ <location filename="../../src/yuzu/main.cpp" line="2406"/>
<source>Game DLC</source>
<translation>遊戲 DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2403"/>
+ <location filename="../../src/yuzu/main.cpp" line="2407"/>
<source>Delta Title</source>
<translation>Delta Title</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2406"/>
+ <location filename="../../src/yuzu/main.cpp" line="2410"/>
<source>Select NCA Install Type...</source>
<translation>選擇 NCA 安裝類型...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
+ <location filename="../../src/yuzu/main.cpp" line="2411"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>請選擇此 NCA 的安裝類型:
(在多數情況下,選擇預設的「遊戲」即可。)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2417"/>
<source>Failed to Install</source>
<translation>安裝失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2414"/>
+ <location filename="../../src/yuzu/main.cpp" line="2418"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>選擇的 NCA 安裝類型無效。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2449"/>
+ <location filename="../../src/yuzu/main.cpp" line="2453"/>
<source>File not found</source>
<translation>找不到檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2450"/>
+ <location filename="../../src/yuzu/main.cpp" line="2454"/>
<source>File &quot;%1&quot; not found</source>
<translation>找不到「%1」檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2519"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2533"/>
+ <location filename="../../src/yuzu/main.cpp" line="2537"/>
<source>Missing yuzu Account</source>
<translation>未設定 yuzu 帳號</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2534"/>
+ <location filename="../../src/yuzu/main.cpp" line="2538"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>為了上傳相容性測試結果,您必須登入 yuzu 帳號。&lt;br&gt;&lt;br/&gt;欲登入 yuzu 帳號請至模擬 &amp;gt; 設定 &amp;gt; 網路。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2544"/>
+ <location filename="../../src/yuzu/main.cpp" line="2548"/>
<source>Error opening URL</source>
<translation>開啟 URL 時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2545"/>
+ <location filename="../../src/yuzu/main.cpp" line="2549"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>無法開啟 URL:「%1」。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2812"/>
+ <location filename="../../src/yuzu/main.cpp" line="2816"/>
<source>TAS Recording</source>
<translation>TAS 錄製</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2813"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Overwrite file of player 1?</source>
<translation>覆寫玩家 1 的檔案?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2839"/>
+ <location filename="../../src/yuzu/main.cpp" line="2843"/>
<source>Invalid config detected</source>
<translation>偵測到無效設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2840"/>
+ <location filename="../../src/yuzu/main.cpp" line="2844"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>掌機手把無法在主機模式中使用。將會選擇 Pro 手把。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>Error</source>
<translation>错误</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2933"/>
- <location filename="../../src/yuzu/main.cpp" line="2945"/>
+ <location filename="../../src/yuzu/main.cpp" line="2937"/>
+ <location filename="../../src/yuzu/main.cpp" line="2949"/>
<source>The current game is not looking for amiibos</source>
<translation>当前游戏并没有在寻找 Amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2974"/>
+ <location filename="../../src/yuzu/main.cpp" line="2944"/>
+ <location filename="../../src/yuzu/main.cpp" line="2978"/>
<source>The current amiibo has been removed</source>
<translation>当前的 Amiibo 已被移除。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2951"/>
+ <location filename="../../src/yuzu/main.cpp" line="2955"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo 檔案 (%1);; 所有檔案 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Load Amiibo</source>
<translation>開啟 Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2980"/>
+ <location filename="../../src/yuzu/main.cpp" line="2984"/>
<source>Error opening Amiibo data file</source>
<translation>開啟 Amiibo 檔案時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2981"/>
+ <location filename="../../src/yuzu/main.cpp" line="2985"/>
<source>Unable to open Amiibo file &quot;%1&quot; for reading.</source>
<translation>無法開啟 Amiibo 檔案 %1。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2989"/>
+ <location filename="../../src/yuzu/main.cpp" line="2993"/>
<source>Error reading Amiibo data file</source>
<translation>讀取 Amiibo 檔案時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2990"/>
+ <location filename="../../src/yuzu/main.cpp" line="2994"/>
<source>Unable to fully read Amiibo data. Expected to read %1 bytes, but was only able to read %2 bytes.</source>
<translation>無法讀取完整的 Amiibo 資料。應讀取 %1 位元組,但實際僅讀取到 %2 位元組。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2998"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
<source>Error loading Amiibo data</source>
<translation>載入 Amiibo 資料時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2999"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>Unable to load Amiibo data.</source>
<translation>無法載入 Amiibo 資料。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3048"/>
+ <location filename="../../src/yuzu/main.cpp" line="3052"/>
<source>Capture Screenshot</source>
<translation>截圖</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3049"/>
+ <location filename="../../src/yuzu/main.cpp" line="3053"/>
<source>PNG Image (*.png)</source>
<translation>PNG 圖片 (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3114"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS 狀態:正在執行 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3116"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>TAS state: Recording %1</source>
<translation>TAS 狀態:正在錄製 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3118"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS 狀態:閒置 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3120"/>
+ <location filename="../../src/yuzu/main.cpp" line="3124"/>
<source>TAS State: Invalid</source>
<translation>TAS 狀態:無效</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Stop Running</source>
<translation>&amp;停止執行</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3134"/>
+ <location filename="../../src/yuzu/main.cpp" line="3138"/>
<source>&amp;Start</source>
<translation>開始(&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>Stop R&amp;ecording</source>
<translation>停止錄製</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3135"/>
+ <location filename="../../src/yuzu/main.cpp" line="3139"/>
<source>R&amp;ecord</source>
<translation>錄製 (&amp;E)</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3159"/>
+ <location filename="../../src/yuzu/main.cpp" line="3163"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>正在編譯 %n 個著色器檔案</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3168"/>
+ <location filename="../../src/yuzu/main.cpp" line="3172"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>縮放比例:%1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3171"/>
+ <location filename="../../src/yuzu/main.cpp" line="3175"/>
<source>Speed: %1% / %2%</source>
<translation>速度:%1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3175"/>
+ <location filename="../../src/yuzu/main.cpp" line="3179"/>
<source>Speed: %1%</source>
<translation>速度:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3179"/>
+ <location filename="../../src/yuzu/main.cpp" line="3183"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>遊戲: %1 FPS(未限制)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3181"/>
+ <location filename="../../src/yuzu/main.cpp" line="3185"/>
<source>Game: %1 FPS</source>
<translation>遊戲:%1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3183"/>
+ <location filename="../../src/yuzu/main.cpp" line="3187"/>
<source>Frame: %1 ms</source>
<translation>畫格延遲:%1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3194"/>
+ <location filename="../../src/yuzu/main.cpp" line="3198"/>
<source>GPU NORMAL</source>
<translation>GPU 一般效能</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3199"/>
+ <location filename="../../src/yuzu/main.cpp" line="3203"/>
<source>GPU HIGH</source>
<translation>GPU 高效能</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3204"/>
+ <location filename="../../src/yuzu/main.cpp" line="3208"/>
<source>GPU EXTREME</source>
<translation>GPU 最高效能</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3209"/>
+ <location filename="../../src/yuzu/main.cpp" line="3213"/>
<source>GPU ERROR</source>
<translation>GPU 錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3219"/>
+ <location filename="../../src/yuzu/main.cpp" line="3223"/>
<source>NEAREST</source>
<translation>最近鄰域</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3222"/>
- <location filename="../../src/yuzu/main.cpp" line="3237"/>
+ <location filename="../../src/yuzu/main.cpp" line="3226"/>
+ <location filename="../../src/yuzu/main.cpp" line="3241"/>
<source>BILINEAR</source>
<translation>雙線性</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3225"/>
+ <location filename="../../src/yuzu/main.cpp" line="3229"/>
<source>BICUBIC</source>
<translation>雙三次</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3228"/>
+ <location filename="../../src/yuzu/main.cpp" line="3232"/>
<source>GAUSSIAN</source>
<translation>高斯</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3235"/>
<source>SCALEFORCE</source>
<translation>強制縮放</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3234"/>
+ <location filename="../../src/yuzu/main.cpp" line="3238"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3246"/>
- <location filename="../../src/yuzu/main.cpp" line="3252"/>
+ <location filename="../../src/yuzu/main.cpp" line="3250"/>
+ <location filename="../../src/yuzu/main.cpp" line="3256"/>
<source>NO AA</source>
<translation>抗鋸齒關</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3249"/>
+ <location filename="../../src/yuzu/main.cpp" line="3253"/>
<source>FXAA</source>
<translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3310"/>
+ <location filename="../../src/yuzu/main.cpp" line="3314"/>
<source>The game you are trying to load requires additional files from your Switch to be dumped before playing.&lt;br/&gt;&lt;br/&gt;For more information on dumping these files, please see the following wiki page: &lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;Dumping System Archives and the Shared Fonts from a Switch Console&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>此遊戲需要從您的 Switch 傾印額外檔案。&lt;br/&gt;&lt;br/&gt;有關傾印這些檔案的更多資訊,請參閱以下 wiki 網頁:Dumping System Archives and the Shared Fonts from a Switch Console&lt;a href=&apos;https://yuzu-emu.org/wiki/dumping-system-archives-and-the-shared-fonts-from-a-switch-console/&apos;&gt;。&lt;br/&gt;&lt;br/&gt;您要停止並回到遊戲清單嗎?繼續模擬可能會導致當機、存檔損毀或其他錯誤。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3325"/>
+ <location filename="../../src/yuzu/main.cpp" line="3329"/>
<source>yuzu was unable to locate a Switch system archive. %1</source>
<translation>Yuzu 找不到 Switch 系統檔案 %1 </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3327"/>
+ <location filename="../../src/yuzu/main.cpp" line="3331"/>
<source>yuzu was unable to locate a Switch system archive: %1. %2</source>
<translation>Yuzu 找不到 Switch 系統檔案:%1。%2 </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3331"/>
+ <location filename="../../src/yuzu/main.cpp" line="3335"/>
<source>System Archive Not Found</source>
<translation>找不到系統檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3333"/>
+ <location filename="../../src/yuzu/main.cpp" line="3337"/>
<source>System Archive Missing</source>
<translation>系統檔案遺失</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3339"/>
+ <location filename="../../src/yuzu/main.cpp" line="3343"/>
<source>yuzu was unable to locate the Switch shared fonts. %1</source>
<translation>Yuzu 找不到 Switch 共享字型 %1 </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3340"/>
+ <location filename="../../src/yuzu/main.cpp" line="3344"/>
<source>Shared Fonts Not Found</source>
<translation>找不到共享字型</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3342"/>
+ <location filename="../../src/yuzu/main.cpp" line="3346"/>
<source>Shared Font Missing</source>
<translation>遺失共享字型</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3348"/>
+ <location filename="../../src/yuzu/main.cpp" line="3352"/>
<source>Fatal Error</source>
<translation>嚴重錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3349"/>
+ <location filename="../../src/yuzu/main.cpp" line="3353"/>
<source>yuzu has encountered a fatal error, please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Would you like to quit back to the game list? Continuing emulation may result in crashes, corrupted save data, or other bugs.</source>
<translation>yuzu 發生嚴重錯誤,請檢視紀錄以了解細節。更多資訊請參閱網頁:&lt;a href=&apos;https://community.citra-emu.org/t/how-to-upload-the-log-file/296&apos;&gt;How to Upload the Log File&lt;/a&gt;。&lt;br/&gt;&lt;br/&gt;您要停止模擬並回到遊戲清單嗎?繼續模擬可能會導致當機、存檔損毀或其他錯誤。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3358"/>
+ <location filename="../../src/yuzu/main.cpp" line="3362"/>
<source>Fatal Error encountered</source>
<translation>發生嚴重錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3381"/>
+ <location filename="../../src/yuzu/main.cpp" line="3385"/>
<source>Confirm Key Rederivation</source>
<translation>確認重新產生金鑰</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3382"/>
+ <location filename="../../src/yuzu/main.cpp" line="3386"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -4687,37 +4742,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
這將刪除您自動產生的金鑰檔案並重新執行產生金鑰模組。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3414"/>
+ <location filename="../../src/yuzu/main.cpp" line="3418"/>
<source>Missing fuses</source>
<translation>遺失項目</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3417"/>
+ <location filename="../../src/yuzu/main.cpp" line="3421"/>
<source> - Missing BOOT0</source>
<translation>- 遺失 BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3420"/>
+ <location filename="../../src/yuzu/main.cpp" line="3424"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - 遺失 BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3423"/>
+ <location filename="../../src/yuzu/main.cpp" line="3427"/>
<source> - Missing PRODINFO</source>
<translation>- 遺失 PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3427"/>
+ <location filename="../../src/yuzu/main.cpp" line="3431"/>
<source>Derivation Components Missing</source>
<translation>遺失產生元件</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3428"/>
+ <location filename="../../src/yuzu/main.cpp" line="3432"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>缺少加密金鑰。 &lt;br&gt;請按照&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;《Yuzu快速入門指南》來取得所有金鑰、韌體、遊戲&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3437"/>
+ <location filename="../../src/yuzu/main.cpp" line="3441"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -4726,39 +4781,39 @@ on your system&apos;s performance.</source>
您的系統效能。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3439"/>
+ <location filename="../../src/yuzu/main.cpp" line="3443"/>
<source>Deriving Keys</source>
<translation>產生金鑰</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3484"/>
+ <location filename="../../src/yuzu/main.cpp" line="3488"/>
<source>Select RomFS Dump Target</source>
<translation>選擇 RomFS 傾印目標</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3485"/>
+ <location filename="../../src/yuzu/main.cpp" line="3489"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>請選擇希望傾印的 RomFS。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3500"/>
+ <location filename="../../src/yuzu/main.cpp" line="3504"/>
<source>Are you sure you want to close yuzu?</source>
<translation>您確定要關閉 yuzu 嗎?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3501"/>
- <location filename="../../src/yuzu/main.cpp" line="3581"/>
- <location filename="../../src/yuzu/main.cpp" line="3594"/>
+ <location filename="../../src/yuzu/main.cpp" line="3505"/>
+ <location filename="../../src/yuzu/main.cpp" line="3585"/>
+ <location filename="../../src/yuzu/main.cpp" line="3598"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3582"/>
+ <location filename="../../src/yuzu/main.cpp" line="3586"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>您確定要停止模擬嗎?未儲存的進度將會遺失。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3591"/>
+ <location filename="../../src/yuzu/main.cpp" line="3595"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -4770,38 +4825,38 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="976"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="973"/>
<source>OpenGL not available!</source>
<translation>無法使用 OpenGL 模式!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="977"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="974"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu 未以支援 OpenGL 的方式編譯。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="993"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1013"/>
<source>Error while initializing OpenGL!</source>
<translation>初始化 OpenGL 時發生錯誤!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="994"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>您的 GPU 可能不支援 OpenGL,或是未安裝最新的圖形驅動程式</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1003"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>初始化 OpenGL 4.6 時發生錯誤!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1004"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>您的 GPU 可能不支援 OpenGL 4.6,或是未安裝最新的圖形驅動程式&lt;br&gt;&lt;br&gt;GL 渲染器:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1014"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>您的 GPU 可能不支援某些必需的 OpenGL 功能。請確保您已安裝最新的圖形驅動程式。&lt;br&gt;&lt;br&gt;GL 渲染器:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;不支援的功能:&lt;br&gt;%2</translation>
</message>
@@ -4963,77 +5018,77 @@ Would you like to bypass this and exit anyway?</source>
<context>
<name>GameListItemCompat</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Perfect</source>
<translation>完美</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="151"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="150"/>
<source>Game functions flawless with no audio or graphical glitches, all tested functionality works as intended without
any workarounds needed.</source>
<translation>遊戲能完整進行。不會出現任何圖形或音訊錯誤,所有功能測試皆正常,也不須使用任何替代方案。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Great</source>
<translation>極佳</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="152"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish. May require some
workarounds.</source>
<translation>遊戲能進行。會出現少量圖形或音訊錯誤,可能需要使用一些替代方案以破完遊戲。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Okay</source>
<translation>尚可</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="153"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with major graphical or audio glitches, but game is playable from start to finish with
workarounds.</source>
<translation>遊戲能進行。會出現大量圖形或音訊錯誤,但是使用一些替代方案能順利破完遊戲。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Bad</source>
<translation>不佳</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="154"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="153"/>
<source>Game functions, but with major graphical or audio glitches. Unable to progress in specific areas due to glitches
even with workarounds.</source>
<translation>遊戲能進行。但是會出現大量圖形或音訊錯誤,即使使用一些替代方案也無法通過遊戲的某些區域。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Intro/Menu</source>
<translation>開始畫面/選單</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="155"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="154"/>
<source>Game is completely unplayable due to major graphical or audio glitches. Unable to progress past the Start
Screen.</source>
<translation>遊戲完全無法進行。因為圖形或音訊的大量錯誤,在通過開始畫面後無法繼續遊戲。</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Won&apos;t Boot</source>
<translation>無法啟動</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="156"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>The game crashes when attempting to startup.</source>
<translation>啟動遊戲時異常關閉</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>Not Tested</source>
<translation>未測試</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="157"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game has not yet been tested.</source>
<translation>此遊戲尚未經過測試</translation>
</message>
@@ -5067,22 +5122,22 @@ Screen.</source>
<context>
<name>InstallDialog</name>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="31"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="30"/>
<source>Please confirm these are the files you wish to install.</source>
<translation>請確認您想安裝的檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="34"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="33"/>
<source>Installing an Update or DLC will overwrite the previously installed one.</source>
<translation>安裝遊戲更新或 DLC 時會覆寫之前的安裝</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="38"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="37"/>
<source>Install</source>
<translation>安裝</translation>
</message>
<message>
- <location filename="../../src/yuzu/install_dialog.cpp" line="52"/>
+ <location filename="../../src/yuzu/install_dialog.cpp" line="51"/>
<source>Install Files to NAND</source>
<translation>安裝檔案至內部儲存空間</translation>
</message>
@@ -5114,22 +5169,22 @@ Screen.</source>
<translation>預估時間:5 分 4 秒</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="91"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="84"/>
<source>Loading...</source>
<translation>載入中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="92"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="85"/>
<source>Loading Shaders %1 / %2</source>
<translation>載入著色器:%1 / %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="93"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="86"/>
<source>Launching...</source>
<translation>啟動中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/loading_screen.cpp" line="174"/>
+ <location filename="../../src/yuzu/loading_screen.cpp" line="167"/>
<source>Estimated Time %1</source>
<translation>預估時間:%1</translation>
</message>
@@ -5409,284 +5464,284 @@ p, li { white-space: pre-wrap; }
<context>
<name>QObject</name>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="244"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="243"/>
<source>Installed SD Titles</source>
<translation>安裝在 SD 卡中的遊戲</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="252"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="251"/>
<source>Installed NAND Titles</source>
<translation>安裝在內部儲存空間中的遊戲</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="260"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="259"/>
<source>System Titles</source>
<translation>系統項目</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="303"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="302"/>
<source>Add New Game Directory</source>
<translation>加入遊戲資料夾</translation>
</message>
<message>
- <location filename="../../src/yuzu/game_list_p.h" line="326"/>
+ <location filename="../../src/yuzu/game_list_p.h" line="325"/>
<source>Favorites</source>
<translation>我的最愛</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="22"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="41"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="24"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="27"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="26"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="37"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="144"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="36"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="142"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="208"/>
<source>[not set]</source>
<translation>[未設定]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="49"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="48"/>
<source>Hat %1 %2</source>
<translation>方向鍵 %1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="56"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="241"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
<source>Axis %1%2</source>
<translation>Axis %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="61"/>
<source>Button %1</source>
<translation>按鍵 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="68"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="204"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="218"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="202"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="246"/>
<source>[unknown]</source>
<translation>[未知]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="56"/>
<source>Left</source>
<translation>左</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
<source>Right</source>
<translation>右</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
<source>Down</source>
<translation>下</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
<source>Up</source>
<translation>上</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>Start</source>
<translation>開始</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Circle</source>
<translation>○</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Cross</source>
<translation>╳</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Square</source>
<translation>□</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
<source>Triangle</source>
<translation>Δ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Share</source>
<translation>分享</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>Options</source>
<translation>選項</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>Home</source>
<translation>HOME</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>Touch</source>
<translation>觸控</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>滑鼠滾輪</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>Backward</source>
<translation>後退</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>Forward</source>
<translation>前進</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Task</source>
<translation>任務鍵</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Extra</source>
<translation>額外按鍵</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>[undefined]</source>
<translation>[未指定]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>%1%2%3</source>
<translation>%1%2%3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="158"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="156"/>
<source>[invalid]</source>
<translation>[無效]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="168"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="166"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="190"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat 控制器 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="172"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="195"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="198"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="170"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
<source>%1%2Axis %3</source>
<translation>%1%2軸 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="178"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="176"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2軸 %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="182"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
<source>%1%2Motion %3</source>
<translation>%1%2體感 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="186"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="201"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="184"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="199"/>
<source>%1%2Button %3</source>
<translation>%1%2按鈕 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="228"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="226"/>
<source>[unused]</source>
<translation>[未使用]</translation>
</message>
@@ -5727,7 +5782,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1656"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1857"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2054"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="416"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="415"/>
<source>Pro Controller</source>
<translation>Pro 手把</translation>
</message>
@@ -5740,7 +5795,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1661"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1862"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2059"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="420"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="419"/>
<source>Dual Joycons</source>
<translation>雙 Joycon 手把</translation>
</message>
@@ -5753,7 +5808,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1666"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1867"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2064"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="424"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="423"/>
<source>Left Joycon</source>
<translation>左 Joycon 手把</translation>
</message>
@@ -5766,7 +5821,7 @@ p, li { white-space: pre-wrap; }
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1671"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="1872"/>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="2069"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="428"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="427"/>
<source>Right Joycon</source>
<translation>右 Joycon 手把</translation>
</message>
@@ -5794,7 +5849,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/applets/qt_controller.ui" line="932"/>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="432"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="431"/>
<source>Handheld</source>
<translation>掌機模式</translation>
</message>
@@ -5915,32 +5970,32 @@ p, li { white-space: pre-wrap; }
<translation>8</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="436"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="435"/>
<source>GameCube Controller</source>
<translation>GameCube 手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="445"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="444"/>
<source>Poke Ball Plus</source>
<translation>精靈球 PLUS</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="449"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="448"/>
<source>NES Controller</source>
<translation>NES 控制手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="453"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="452"/>
<source>SNES Controller</source>
<translation>SNES 控制手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="457"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="456"/>
<source>N64 Controller</source>
<translation>N64 控制手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_controller.cpp" line="461"/>
+ <location filename="../../src/yuzu/applets/qt_controller.cpp" line="460"/>
<source>Sega Genesis</source>
<translation>Mega Drive</translation>
</message>
@@ -5985,7 +6040,7 @@ Please try again or contact the developer of the software.</source>
<context>
<name>QtProfileSelectionDialog</name>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="23"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="24"/>
<source>%1
%2</source>
<comment>%1 is the profile username, %2 is the formatted UUID (e.g. 00112233-4455-6677-8899-AABBCCDDEEFF))</comment>
@@ -5993,17 +6048,17 @@ Please try again or contact the developer of the software.</source>
%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="53"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="54"/>
<source>Select a user:</source>
<translation>選擇一位使用者:</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="83"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="84"/>
<source>Users</source>
<translation>使用者</translation>
</message>
<message>
- <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="122"/>
+ <location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="123"/>
<source>Profile Selector</source>
<translation>設定檔選擇</translation>
</message>
@@ -6056,7 +6111,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeCallstack</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="150"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="148"/>
<source>Call stack</source>
<translation>Call stack</translation>
</message>
@@ -6064,17 +6119,17 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeMutexInfo</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="129"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="127"/>
<source>waiting for mutex 0x%1</source>
<translation>waiting for mutex 0x%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="134"/>
<source>has waiters: %1</source>
<translation>has waiters: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="138"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="136"/>
<source>owner handle: 0x%1</source>
<translation>owner handle: 0x%1</translation>
</message>
@@ -6082,12 +6137,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeObjectList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="231"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="229"/>
<source>waiting for all objects</source>
<translation>waiting for all objects</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="232"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="230"/>
<source>waiting for one of the following objects</source>
<translation>waiting for one of the following objects</translation>
</message>
@@ -6095,12 +6150,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeSynchronizationObject</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="188"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="186"/>
<source>[%1] %2 %3</source>
<translation>[%1] %2 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="215"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waited by no thread</source>
<translation>waited by no thread</translation>
</message>
@@ -6108,112 +6163,112 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThread</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="251"/>
<source>runnable</source>
<translation>runnable</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="255"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="253"/>
<source>paused</source>
<translation>paused</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="261"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="259"/>
<source>sleeping</source>
<translation>sleeping</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="264"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="262"/>
<source>waiting for IPC reply</source>
<translation>waiting for IPC reply</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="267"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="265"/>
<source>waiting for objects</source>
<translation>waiting for objects</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="270"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="268"/>
<source>waiting for condition variable</source>
<translation>waiting for condition variable</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="273"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="271"/>
<source>waiting for address arbiter</source>
<translation>waiting for address arbiter</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="276"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="274"/>
<source>waiting for suspend resume</source>
<translation>waiting for suspend resume</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="279"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="277"/>
<source>waiting</source>
<translation>waiting</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="284"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="282"/>
<source>initialized</source>
<translation>initialized</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="287"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="285"/>
<source>terminated</source>
<translation>terminated</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="290"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="288"/>
<source>unknown</source>
<translation>unknown</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="295"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="293"/>
<source> PC = 0x%1 LR = 0x%2</source>
<translation>PC = 0x%1 LR = 0x%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="345"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="343"/>
<source>ideal</source>
<translation>ideal</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="348"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="346"/>
<source>core %1</source>
<translation>core %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="350"/>
<source>processor = %1</source>
<translation>processor = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="352"/>
<source>ideal core = %1</source>
<translation>ideal core = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="354"/>
<source>affinity mask = %1</source>
<translation>affinity mask = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="357"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="355"/>
<source>thread id = %1</source>
<translation>thread id = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="358"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="356"/>
<source>priority = %1(current) / %2(normal)</source>
<translation>priority = %1(current) / %2(normal)</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="362"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="360"/>
<source>last running ticks = %1</source>
<translation>last running ticks = %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="370"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="368"/>
<source>not waiting for mutex</source>
<translation>未等待 mutex</translation>
</message>
@@ -6221,7 +6276,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeThreadList</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="394"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="392"/>
<source>waited by thread</source>
<translation>waited by thread</translation>
</message>
@@ -6229,7 +6284,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>WaitTreeWidget</name>
<message>
- <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="468"/>
+ <location filename="../../src/yuzu/debugger/wait_tree.cpp" line="466"/>
<source>&amp;Wait Tree</source>
<translation>&amp;Wait Tree</translation>
</message>
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 82e8ef18c..64361de5f 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -68,9 +68,6 @@ if (YUZU_USE_EXTERNAL_SDL2)
add_library(SDL2 ALIAS SDL2-static)
endif()
-# SoundTouch
-add_subdirectory(soundtouch)
-
# Cubeb
if(ENABLE_CUBEB)
set(BUILD_TESTS OFF CACHE BOOL "")
diff --git a/externals/dynarmic b/externals/dynarmic
-Subproject 0fd32c5fa4a57738b0b390a597257b4be39a7a9
+Subproject 644172477eaf0d822178cb7e96c62b75caa9657
diff --git a/externals/soundtouch b/externals/soundtouch
deleted file mode 160000
-Subproject 060181eaf273180d3a7e87349895bd0cb6ccbf4
diff --git a/license.txt b/license.txt
index 495f3e676..e72bfddab 100644
--- a/license.txt
+++ b/license.txt
@@ -1,285 +1,626 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
+ GNU GENERAL PUBLIC LICENSE
+ Version 3, 29 June 2007
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
- Preamble
+ Preamble
- The licenses for most software are designed to take away your
-freedom to share and change it. By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users. This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it. (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.) You can apply it to
+ The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+ The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works. By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users. We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
- To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
+ To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights. Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have. You must make sure that they, too, receive or can get the
-source code. And you must show them these terms so they know their
-rights.
-
- We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
- Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software. If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
- Finally, any free program is threatened constantly by software
-patents. We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary. To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received. You must make sure that they, too, receive
+or can get the source code. And you must show them these terms so they
+know their rights.
+
+ Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+ For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software. For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+ Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so. This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software. The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable. Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products. If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+ Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary. To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
- GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License. The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language. (Hereinafter, translation is included without limitation in
-the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope. The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
- 1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
- 2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
- a) You must cause the modified files to carry prominent notices
- stating that you changed the files and the date of any change.
-
- b) You must cause any work that you distribute or publish, that in
- whole or in part contains or is derived from the Program or any
- part thereof, to be licensed as a whole at no charge to all third
- parties under the terms of this License.
-
- c) If the modified program normally reads commands interactively
- when run, you must cause it, when started running for such
- interactive use in the most ordinary way, to print or display an
- announcement including an appropriate copyright notice and a
- notice that there is no warranty (or else, saying that you provide
- a warranty) and that users may redistribute the program under
- these conditions, and telling the user how to view a copy of this
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works. But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
- 3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
- a) Accompany it with the complete corresponding machine-readable
- source code, which must be distributed under the terms of Sections
- 1 and 2 above on a medium customarily used for software interchange; or,
-
- b) Accompany it with a written offer, valid for at least three
- years, to give any third party, for a charge no more than your
- cost of physically performing source distribution, a complete
- machine-readable copy of the corresponding source code, to be
- distributed under the terms of Sections 1 and 2 above on a medium
- customarily used for software interchange; or,
-
- c) Accompany it with the information you received as to the offer
- to distribute corresponding source code. (This alternative is
- allowed only for noncommercial distribution and only if you
- received the program in object code or executable form with such
- an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it. For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable. However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
- 4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License. Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
- 5. You are not required to accept this License, since you have not
-signed it. However, nothing else grants you permission to modify or
-distribute the Program or its derivative works. These actions are
-prohibited by law if you do not accept this License. Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
- 6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions. You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ "This License" refers to version 3 of the GNU General Public License.
+
+ "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+ "The Program" refers to any copyrightable work licensed under this
+License. Each licensee is addressed as "you". "Licensees" and
+"recipients" may be individuals or organizations.
+
+ To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy. The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+ A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+ To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy. Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+ To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies. Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License. If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+ 1. Source Code.
+
+ The "source code" for a work means the preferred form of the work
+for making modifications to it. "Object code" means any non-source
+form of a work.
+
+ A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+ The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form. A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+ The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities. However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work. For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+ The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+ The Corresponding Source for a work in source code form is that
+same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met. This License explicitly affirms your unlimited
+permission to run the unmodified Program. The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work. This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+ You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force. You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright. Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+ Conveying under any other circumstances is permitted solely under
+the conditions stated below. Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+ You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified
+ it, and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is
+ released under this License and any conditions added under section
+ 7. This requirement modifies the requirement in section 4 to
+ "keep intact all notices".
+
+ c) You must license the entire work, as a whole, under this
+ License to anyone who comes into possession of a copy. This
+ License will therefore apply, along with any applicable section 7
+ additional terms, to the whole of the work, and all its parts,
+ regardless of how they are packaged. This License gives no
+ permission to license the work in any other way, but it does not
+ invalidate such permission if you have separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your
+ work need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit. Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium
+ customarily used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a
+ written offer, valid for at least three years and valid for as
+ long as you offer spare parts or customer support for that product
+ model, to give anyone who possesses the object code either (1) a
+ copy of the Corresponding Source for all the software in the
+ product that is covered by this License, on a durable physical
+ medium customarily used for software interchange, for a price no
+ more than your reasonable cost of physically performing this
+ conveying of source, or (2) access to copy the
+ Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This
+ alternative is allowed only occasionally and noncommercially, and
+ only if you received the object code with such an offer, in accord
+ with subsection 6b.
+
+ d) Convey the object code by offering access from a designated
+ place (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to
+ copy the object code is a network server, the Corresponding Source
+ may be on a different server (operated by you or a third party)
+ that supports equivalent copying facilities, provided you maintain
+ clear directions next to the object code saying where to find the
+ Corresponding Source. Regardless of what server hosts the
+ Corresponding Source, you remain obligated to ensure that it is
+ available for as long as needed to satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided
+ you inform other peers where the object code and Corresponding
+ Source of the work are being offered to the general public at no
+ charge under subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+ A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling. In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage. For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product. A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+ "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source. The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information. But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+ The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed. Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+ 7. Additional Terms.
+
+ "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law. If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+ When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it. (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.) You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+ Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some
+ trade names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that
+ material by anyone who conveys the material (or modified versions of
+ it) with contractual assumptions of liability to the recipient, for
+ any liability that these contractual assumptions directly impose on
+ those licensors and authors.
+
+ All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10. If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term. If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+ Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+provided under this License. Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+ However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+ Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License. If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or
+run a copy of the Program. Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance. However,
+nothing other than this License grants you permission to propagate or
+modify any covered work. These actions infringe copyright if you do
+not accept this License. Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License. You are not responsible
+for enforcing compliance by third parties with this License.
+
+ An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations. If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License. For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+ 11. Patents.
+
+ A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based. The
+work thus licensed is called the contributor's "contributor version".
+
+ A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version. For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
this License.
- 7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+ In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement). To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+ If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients. "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+ A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License. You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all. For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices. Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
- 8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded. In such case, this License incorporates
-the limitation as if written in the body of this License.
-
- 9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time. Such new versions will
+excuse you from the conditions of this License. If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all. For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+ 13. Use with the GNU Affero General Public License.
+
+ Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work. The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+ 14. Revised Versions of this License.
+
+ The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
-Each version is given a distinguishing version number. If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation. If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
- 10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission. For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this. Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
+ Each version is given a distinguishing version number. If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation. If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+ If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+ Later license versions may give you additional or different
+permissions. However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -287,15 +628,15 @@ free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
+state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
- This program is free software; you can redistribute it and/or modify
+ This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
@@ -303,63 +644,31 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
+ If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
- Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ <program> Copyright (C) <year> <name of author>
+ This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the program
- `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
- <signature of Ty Coon>, 1 April 1989
- Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs. If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
-
-
-The icons used in this project have the following licenses:
-
-Icon Name | License | Origin/Author
---- | --- | ---
-checked.png | CC BY-ND 3.0 | https://icons8.com
-failed.png | CC BY-ND 3.0 | https://icons8.com
-lock.png | CC BY-ND 3.0 | https://icons8.com
-plus_folder.png (Default, Dark) | CC BY-ND 3.0 | https://icons8.com
-bad_folder.png (Default, Dark) | CC BY-ND 3.0 | https://icons8.com
-chip.png (Default, Dark) | CC BY-ND 3.0 | https://icons8.com
-folder.png (Default, Dark) | CC BY-ND 3.0 | https://icons8.com
-plus.png (Default, Dark) | CC0 1.0 | Designed by BreadFish64 from the Citra team
-sd_card.png (Default, Dark) | CC BY-ND 3.0 | https://icons8.com
-plus_folder.png (Colorful, Colorful Dark) | CC BY-ND 3.0 | https://icons8.com
-bad_folder.png (Colorful, Colorful Dark) | CC BY-ND 3.0 | https://icons8.com
-chip.png (Colorful, Colorful Dark) | CC BY-ND 3.0 | https://icons8.com
-folder.png (Colorful, Colorful Dark) | CC BY-ND 3.0 | https://icons8.com
-plus.png (Colorful, Colorful Dark) | CC BY-ND 3.0 | https://icons8.com
-sd_card.png (Colorful, Colorful Dark) | CC BY-ND 3.0 | https://icons8.com
-star.png | CC BY-ND 3.0 | https://icons8.com
-
-Note:
-Some icons are different in different themes, and they are separately listed
-only when they have different licenses/origins.
+parts of the General Public License. Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+ You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<https://www.gnu.org/licenses/>.
+
+ The GNU General Public License does not permit incorporating your program
+into proprietary programs. If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License. But first, please read
+<https://www.gnu.org/licenses/why-not-lgpl.html>. \ No newline at end of file
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 1bdf70b76..9182dbfd4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -65,12 +65,14 @@ if (MSVC)
/we4305 # 'context': truncation from 'type1' to 'type2'
/we4388 # 'expression': signed/unsigned mismatch
/we4389 # 'operator': signed/unsigned mismatch
+ /we4505 # 'function': unreferenced local function has been removed
/we4547 # 'operator': operator before comma has no effect; expected operator with side-effect
/we4549 # 'operator1': operator before comma has no effect; did you intend 'operator2'?
/we4555 # Expression has no effect; expected expression with side-effect
/we4715 # 'function': not all control paths return a value
/we4834 # Discarding return value of function with 'nodiscard' attribute
/we5038 # data member 'member1' will be initialized after data member 'member2'
+ /we5245 # 'function': unreferenced function with internal linkage has been removed
)
if (ARCHITECTURE_x86_64)
@@ -103,12 +105,6 @@ else()
-Wno-unused-parameter
)
- # TODO: Remove when we update to a GCC compiler that enables this
- # by default (i.e. GCC 10 or newer).
- if (CMAKE_CXX_COMPILER_ID STREQUAL GNU)
- add_compile_options(-fconcepts)
- endif()
-
if (ARCHITECTURE_x86_64)
add_compile_options("-mcx16")
endif()
diff --git a/src/audio_core/CMakeLists.txt b/src/audio_core/CMakeLists.txt
index 090dd19b1..e553b8203 100644
--- a/src/audio_core/CMakeLists.txt
+++ b/src/audio_core/CMakeLists.txt
@@ -36,8 +36,6 @@ add_library(audio_core STATIC
splitter_context.h
stream.cpp
stream.h
- time_stretch.cpp
- time_stretch.h
voice_context.cpp
voice_context.h
@@ -63,7 +61,6 @@ if (NOT MSVC)
endif()
target_link_libraries(audio_core PUBLIC common core)
-target_link_libraries(audio_core PRIVATE SoundTouch)
if(ENABLE_CUBEB)
target_link_libraries(audio_core PRIVATE cubeb)
diff --git a/src/audio_core/cubeb_sink.cpp b/src/audio_core/cubeb_sink.cpp
index 93c35e785..13de3087c 100644
--- a/src/audio_core/cubeb_sink.cpp
+++ b/src/audio_core/cubeb_sink.cpp
@@ -7,7 +7,6 @@
#include <cstring>
#include "audio_core/cubeb_sink.h"
#include "audio_core/stream.h"
-#include "audio_core/time_stretch.h"
#include "common/assert.h"
#include "common/logging/log.h"
#include "common/ring_buffer.h"
@@ -23,8 +22,7 @@ class CubebSinkStream final : public SinkStream {
public:
CubebSinkStream(cubeb* ctx_, u32 sample_rate, u32 num_channels_, cubeb_devid output_device,
const std::string& name)
- : ctx{ctx_}, num_channels{std::min(num_channels_, 6u)}, time_stretch{sample_rate,
- num_channels} {
+ : ctx{ctx_}, num_channels{std::min(num_channels_, 6u)} {
cubeb_stream_params params{};
params.rate = sample_rate;
@@ -131,7 +129,6 @@ private:
Common::RingBuffer<s16, 0x10000> queue;
std::array<s16, 2> last_frame{};
std::atomic<bool> should_flush{};
- TimeStretcher time_stretch;
static long DataCallback(cubeb_stream* stream, void* user_data, const void* input_buffer,
void* output_buffer, long num_frames);
@@ -205,25 +202,7 @@ long CubebSinkStream::DataCallback([[maybe_unused]] cubeb_stream* stream, void*
const std::size_t num_channels = impl->GetNumChannels();
const std::size_t samples_to_write = num_channels * num_frames;
- std::size_t samples_written;
-
- /*
- if (Settings::values.enable_audio_stretching.GetValue()) {
- const std::vector<s16> in{impl->queue.Pop()};
- const std::size_t num_in{in.size() / num_channels};
- s16* const out{reinterpret_cast<s16*>(buffer)};
- const std::size_t out_frames =
- impl->time_stretch.Process(in.data(), num_in, out, num_frames);
- samples_written = out_frames * num_channels;
-
- if (impl->should_flush) {
- impl->time_stretch.Flush();
- impl->should_flush = false;
- }
- } else {
- samples_written = impl->queue.Pop(buffer, samples_to_write);
- }*/
- samples_written = impl->queue.Pop(buffer, samples_to_write);
+ const std::size_t samples_written = impl->queue.Pop(buffer, samples_to_write);
if (samples_written >= num_channels) {
std::memcpy(&impl->last_frame[0], buffer + (samples_written - num_channels) * sizeof(s16),
diff --git a/src/audio_core/sdl2_sink.cpp b/src/audio_core/sdl2_sink.cpp
index 62d3716a6..2d14ce2cb 100644
--- a/src/audio_core/sdl2_sink.cpp
+++ b/src/audio_core/sdl2_sink.cpp
@@ -7,7 +7,6 @@
#include <cstring>
#include "audio_core/sdl2_sink.h"
#include "audio_core/stream.h"
-#include "audio_core/time_stretch.h"
#include "common/assert.h"
#include "common/logging/log.h"
//#include "common/settings.h"
@@ -27,7 +26,7 @@ namespace AudioCore {
class SDLSinkStream final : public SinkStream {
public:
SDLSinkStream(u32 sample_rate, u32 num_channels_, const std::string& output_device)
- : num_channels{std::min(num_channels_, 6u)}, time_stretch{sample_rate, num_channels} {
+ : num_channels{std::min(num_channels_, 6u)} {
SDL_AudioSpec spec;
spec.freq = sample_rate;
@@ -116,7 +115,6 @@ private:
SDL_AudioDeviceID dev = 0;
u32 num_channels{};
std::atomic<bool> should_flush{};
- TimeStretcher time_stretch;
};
SDLSink::SDLSink(std::string_view target_device_name) {
diff --git a/src/audio_core/time_stretch.cpp b/src/audio_core/time_stretch.cpp
deleted file mode 100644
index 726591fce..000000000
--- a/src/audio_core/time_stretch.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2018 yuzu Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#include <algorithm>
-#include <cmath>
-#include <cstddef>
-#include "audio_core/time_stretch.h"
-#include "common/logging/log.h"
-
-namespace AudioCore {
-
-TimeStretcher::TimeStretcher(u32 sample_rate, u32 channel_count) : m_sample_rate{sample_rate} {
- m_sound_touch.setChannels(channel_count);
- m_sound_touch.setSampleRate(sample_rate);
- m_sound_touch.setPitch(1.0);
- m_sound_touch.setTempo(1.0);
-}
-
-void TimeStretcher::Clear() {
- m_sound_touch.clear();
-}
-
-void TimeStretcher::Flush() {
- m_sound_touch.flush();
-}
-
-std::size_t TimeStretcher::Process(const s16* in, std::size_t num_in, s16* out,
- std::size_t num_out) {
- const double time_delta = static_cast<double>(num_out) / m_sample_rate; // seconds
-
- // We were given actual_samples number of samples, and num_samples were requested from us.
- double current_ratio = static_cast<double>(num_in) / static_cast<double>(num_out);
-
- const double max_latency = 0.25; // seconds
- const double max_backlog = m_sample_rate * max_latency;
- const double backlog_fullness = m_sound_touch.numSamples() / max_backlog;
- if (backlog_fullness > 4.0) {
- // Too many samples in backlog: Don't push anymore on
- num_in = 0;
- }
-
- // We ideally want the backlog to be about 50% full.
- // This gives some headroom both ways to prevent underflow and overflow.
- // We tweak current_ratio to encourage this.
- constexpr double tweak_time_scale = 0.05; // seconds
- const double tweak_correction = (backlog_fullness - 0.5) * (time_delta / tweak_time_scale);
- current_ratio *= std::pow(1.0 + 2.0 * tweak_correction, tweak_correction < 0 ? 3.0 : 1.0);
-
- // This low-pass filter smoothes out variance in the calculated stretch ratio.
- // The time-scale determines how responsive this filter is.
- constexpr double lpf_time_scale = 0.712; // seconds
- const double lpf_gain = 1.0 - std::exp(-time_delta / lpf_time_scale);
- m_stretch_ratio += lpf_gain * (current_ratio - m_stretch_ratio);
-
- // Place a lower limit of 5% speed. When a game boots up, there will be
- // many silence samples. These do not need to be timestretched.
- m_stretch_ratio = std::max(m_stretch_ratio, 0.05);
- m_sound_touch.setTempo(m_stretch_ratio);
-
- LOG_TRACE(Audio, "{:5}/{:5} ratio:{:0.6f} backlog:{:0.6f}", num_in, num_out, m_stretch_ratio,
- backlog_fullness);
-
- m_sound_touch.putSamples(in, static_cast<u32>(num_in));
- return m_sound_touch.receiveSamples(out, static_cast<u32>(num_out));
-}
-
-} // namespace AudioCore
diff --git a/src/audio_core/time_stretch.h b/src/audio_core/time_stretch.h
deleted file mode 100644
index bb2270b96..000000000
--- a/src/audio_core/time_stretch.h
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 2018 yuzu Emulator Project
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#pragma once
-
-#include <cstddef>
-#include <SoundTouch.h>
-#include "common/common_types.h"
-
-namespace AudioCore {
-
-class TimeStretcher {
-public:
- TimeStretcher(u32 sample_rate, u32 channel_count);
-
- /// @param in Input sample buffer
- /// @param num_in Number of input frames in `in`
- /// @param out Output sample buffer
- /// @param num_out Desired number of output frames in `out`
- /// @returns Actual number of frames written to `out`
- std::size_t Process(const s16* in, std::size_t num_in, s16* out, std::size_t num_out);
-
- void Clear();
-
- void Flush();
-
-private:
- u32 m_sample_rate;
- soundtouch::SoundTouch m_sound_touch;
- double m_stretch_ratio = 1.0;
-};
-
-} // namespace AudioCore
diff --git a/src/common/atomic_ops.h b/src/common/atomic_ops.h
index 2b1f515e8..69fde8421 100644
--- a/src/common/atomic_ops.h
+++ b/src/common/atomic_ops.h
@@ -4,13 +4,12 @@
#pragma once
-#include <cstring>
-#include <memory>
-
#include "common/common_types.h"
#if _MSC_VER
#include <intrin.h>
+#else
+#include <cstring>
#endif
namespace Common {
@@ -47,6 +46,50 @@ namespace Common {
reinterpret_cast<__int64*>(expected.data())) != 0;
}
+[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u8* pointer, u8 value, u8 expected,
+ u8& actual) {
+ actual =
+ _InterlockedCompareExchange8(reinterpret_cast<volatile char*>(pointer), value, expected);
+ return actual == expected;
+}
+
+[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u16* pointer, u16 value, u16 expected,
+ u16& actual) {
+ actual =
+ _InterlockedCompareExchange16(reinterpret_cast<volatile short*>(pointer), value, expected);
+ return actual == expected;
+}
+
+[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u32* pointer, u32 value, u32 expected,
+ u32& actual) {
+ actual =
+ _InterlockedCompareExchange(reinterpret_cast<volatile long*>(pointer), value, expected);
+ return actual == expected;
+}
+
+[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u64* pointer, u64 value, u64 expected,
+ u64& actual) {
+ actual = _InterlockedCompareExchange64(reinterpret_cast<volatile __int64*>(pointer), value,
+ expected);
+ return actual == expected;
+}
+
+[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u64* pointer, u128 value, u128 expected,
+ u128& actual) {
+ const bool result =
+ _InterlockedCompareExchange128(reinterpret_cast<volatile __int64*>(pointer), value[1],
+ value[0], reinterpret_cast<__int64*>(expected.data())) != 0;
+ actual = expected;
+ return result;
+}
+
+[[nodiscard]] inline u128 AtomicLoad128(volatile u64* pointer) {
+ u128 result{};
+ _InterlockedCompareExchange128(reinterpret_cast<volatile __int64*>(pointer), result[1],
+ result[0], reinterpret_cast<__int64*>(result.data()));
+ return result;
+}
+
#else
[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u8* pointer, u8 value, u8 expected) {
@@ -73,6 +116,52 @@ namespace Common {
return __sync_bool_compare_and_swap((unsigned __int128*)pointer, expected_a, value_a);
}
+[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u8* pointer, u8 value, u8 expected,
+ u8& actual) {
+ actual = __sync_val_compare_and_swap(pointer, expected, value);
+ return actual == expected;
+}
+
+[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u16* pointer, u16 value, u16 expected,
+ u16& actual) {
+ actual = __sync_val_compare_and_swap(pointer, expected, value);
+ return actual == expected;
+}
+
+[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u32* pointer, u32 value, u32 expected,
+ u32& actual) {
+ actual = __sync_val_compare_and_swap(pointer, expected, value);
+ return actual == expected;
+}
+
+[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u64* pointer, u64 value, u64 expected,
+ u64& actual) {
+ actual = __sync_val_compare_and_swap(pointer, expected, value);
+ return actual == expected;
+}
+
+[[nodiscard]] inline bool AtomicCompareAndSwap(volatile u64* pointer, u128 value, u128 expected,
+ u128& actual) {
+ unsigned __int128 value_a;
+ unsigned __int128 expected_a;
+ unsigned __int128 actual_a;
+ std::memcpy(&value_a, value.data(), sizeof(u128));
+ std::memcpy(&expected_a, expected.data(), sizeof(u128));
+ actual_a = __sync_val_compare_and_swap((unsigned __int128*)pointer, expected_a, value_a);
+ std::memcpy(actual.data(), &actual_a, sizeof(u128));
+ return actual_a == expected_a;
+}
+
+[[nodiscard]] inline u128 AtomicLoad128(volatile u64* pointer) {
+ unsigned __int128 zeros_a = 0;
+ unsigned __int128 result_a =
+ __sync_val_compare_and_swap((unsigned __int128*)pointer, zeros_a, zeros_a);
+
+ u128 result;
+ std::memcpy(result.data(), &result_a, sizeof(u128));
+ return result;
+}
+
#endif
} // namespace Common
diff --git a/src/common/bit_field.h b/src/common/bit_field.h
index 0f0661172..7f8620e7d 100644
--- a/src/common/bit_field.h
+++ b/src/common/bit_field.h
@@ -33,7 +33,6 @@
#include <cstddef>
#include <limits>
#include <type_traits>
-#include "common/common_funcs.h"
#include "common/swap.h"
/*
diff --git a/src/common/dynamic_library.cpp b/src/common/dynamic_library.cpp
index 7f0a10521..11003e1d6 100644
--- a/src/common/dynamic_library.cpp
+++ b/src/common/dynamic_library.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2+
// Refer to the license.txt file included.
-#include <cstring>
#include <string>
#include <utility>
diff --git a/src/common/fs/file.cpp b/src/common/fs/file.cpp
index 274f57659..5d71275ef 100644
--- a/src/common/fs/file.cpp
+++ b/src/common/fs/file.cpp
@@ -4,7 +4,6 @@
#include "common/fs/file.h"
#include "common/fs/fs.h"
-#include "common/fs/path_util.h"
#include "common/logging/log.h"
#ifdef _WIN32
diff --git a/src/common/fs/file.h b/src/common/fs/file.h
index a4f7944cd..8a2cab0af 100644
--- a/src/common/fs/file.h
+++ b/src/common/fs/file.h
@@ -6,10 +6,8 @@
#include <cstdio>
#include <filesystem>
-#include <fstream>
#include <span>
#include <type_traits>
-#include <vector>
#include "common/concepts.h"
#include "common/fs/fs_types.h"
diff --git a/src/common/fs/fs_types.h b/src/common/fs/fs_types.h
index 089980aee..f5853f624 100644
--- a/src/common/fs/fs_types.h
+++ b/src/common/fs/fs_types.h
@@ -7,7 +7,6 @@
#include <functional>
#include "common/common_funcs.h"
-#include "common/common_types.h"
namespace Common::FS {
diff --git a/src/common/fs/fs_util.h b/src/common/fs/fs_util.h
index 1620d38c9..392af89f7 100644
--- a/src/common/fs/fs_util.h
+++ b/src/common/fs/fs_util.h
@@ -8,7 +8,6 @@
#include <filesystem>
#include <span>
#include <string>
-#include <string_view>
#include "common/common_types.h"
diff --git a/src/common/hex_util.h b/src/common/hex_util.h
index 5e9b6ef8b..323c8fb33 100644
--- a/src/common/hex_util.h
+++ b/src/common/hex_util.h
@@ -7,7 +7,6 @@
#include <array>
#include <cstddef>
#include <string>
-#include <type_traits>
#include <vector>
#include <fmt/format.h>
#include "common/common_types.h"
diff --git a/src/common/host_memory.cpp b/src/common/host_memory.cpp
index c465cfc14..802943eb7 100644
--- a/src/common/host_memory.cpp
+++ b/src/common/host_memory.cpp
@@ -18,6 +18,7 @@
#include <fcntl.h>
#include <sys/mman.h>
#include <unistd.h>
+#include "common/scope_exit.h"
#endif // ^^^ Linux ^^^
@@ -27,7 +28,6 @@
#include "common/assert.h"
#include "common/host_memory.h"
#include "common/logging/log.h"
-#include "common/scope_exit.h"
namespace Common {
@@ -149,7 +149,7 @@ public:
}
void Unmap(size_t virtual_offset, size_t length) {
- std::lock_guard lock{placeholder_mutex};
+ std::scoped_lock lock{placeholder_mutex};
// Unmap until there are no more placeholders
while (UnmapOnePlaceholder(virtual_offset, length)) {
@@ -169,7 +169,7 @@ public:
}
const size_t virtual_end = virtual_offset + length;
- std::lock_guard lock{placeholder_mutex};
+ std::scoped_lock lock{placeholder_mutex};
auto [it, end] = placeholders.equal_range({virtual_offset, virtual_end});
while (it != end) {
const size_t offset = std::max(it->lower(), virtual_offset);
diff --git a/src/common/intrusive_red_black_tree.h b/src/common/intrusive_red_black_tree.h
index 3173cc449..eaf5675e3 100644
--- a/src/common/intrusive_red_black_tree.h
+++ b/src/common/intrusive_red_black_tree.h
@@ -4,6 +4,7 @@
#pragma once
+#include "common/common_funcs.h"
#include "common/parent_of_member.h"
#include "common/tree.h"
@@ -15,32 +16,33 @@ class IntrusiveRedBlackTreeImpl;
}
+#pragma pack(push, 4)
struct IntrusiveRedBlackTreeNode {
+ YUZU_NON_COPYABLE(IntrusiveRedBlackTreeNode);
+
public:
- using EntryType = RBEntry<IntrusiveRedBlackTreeNode>;
+ using RBEntry = freebsd::RBEntry<IntrusiveRedBlackTreeNode>;
- constexpr IntrusiveRedBlackTreeNode() = default;
+private:
+ RBEntry m_entry;
- void SetEntry(const EntryType& new_entry) {
- entry = new_entry;
- }
+public:
+ explicit IntrusiveRedBlackTreeNode() = default;
- [[nodiscard]] EntryType& GetEntry() {
- return entry;
+ [[nodiscard]] constexpr RBEntry& GetRBEntry() {
+ return m_entry;
}
-
- [[nodiscard]] const EntryType& GetEntry() const {
- return entry;
+ [[nodiscard]] constexpr const RBEntry& GetRBEntry() const {
+ return m_entry;
}
-private:
- EntryType entry{};
-
- friend class impl::IntrusiveRedBlackTreeImpl;
-
- template <class, class, class>
- friend class IntrusiveRedBlackTree;
+ constexpr void SetRBEntry(const RBEntry& entry) {
+ m_entry = entry;
+ }
};
+static_assert(sizeof(IntrusiveRedBlackTreeNode) ==
+ 3 * sizeof(void*) + std::max<size_t>(sizeof(freebsd::RBColor), 4));
+#pragma pack(pop)
template <class T, class Traits, class Comparator>
class IntrusiveRedBlackTree;
@@ -48,12 +50,17 @@ class IntrusiveRedBlackTree;
namespace impl {
class IntrusiveRedBlackTreeImpl {
+ YUZU_NON_COPYABLE(IntrusiveRedBlackTreeImpl);
+
private:
template <class, class, class>
friend class ::Common::IntrusiveRedBlackTree;
- using RootType = RBHead<IntrusiveRedBlackTreeNode>;
- RootType root;
+private:
+ using RootType = freebsd::RBHead<IntrusiveRedBlackTreeNode>;
+
+private:
+ RootType m_root;
public:
template <bool Const>
@@ -81,149 +88,150 @@ public:
IntrusiveRedBlackTreeImpl::reference>;
private:
- pointer node;
+ pointer m_node;
public:
- explicit Iterator(pointer n) : node(n) {}
+ constexpr explicit Iterator(pointer n) : m_node(n) {}
- bool operator==(const Iterator& rhs) const {
- return this->node == rhs.node;
+ constexpr bool operator==(const Iterator& rhs) const {
+ return m_node == rhs.m_node;
}
- bool operator!=(const Iterator& rhs) const {
+ constexpr bool operator!=(const Iterator& rhs) const {
return !(*this == rhs);
}
- pointer operator->() const {
- return this->node;
+ constexpr pointer operator->() const {
+ return m_node;
}
- reference operator*() const {
- return *this->node;
+ constexpr reference operator*() const {
+ return *m_node;
}
- Iterator& operator++() {
- this->node = GetNext(this->node);
+ constexpr Iterator& operator++() {
+ m_node = GetNext(m_node);
return *this;
}
- Iterator& operator--() {
- this->node = GetPrev(this->node);
+ constexpr Iterator& operator--() {
+ m_node = GetPrev(m_node);
return *this;
}
- Iterator operator++(int) {
+ constexpr Iterator operator++(int) {
const Iterator it{*this};
++(*this);
return it;
}
- Iterator operator--(int) {
+ constexpr Iterator operator--(int) {
const Iterator it{*this};
--(*this);
return it;
}
- operator Iterator<true>() const {
- return Iterator<true>(this->node);
+ constexpr operator Iterator<true>() const {
+ return Iterator<true>(m_node);
}
};
private:
- // Define accessors using RB_* functions.
- bool EmptyImpl() const {
- return root.IsEmpty();
+ constexpr bool EmptyImpl() const {
+ return m_root.IsEmpty();
}
- IntrusiveRedBlackTreeNode* GetMinImpl() const {
- return RB_MIN(const_cast<RootType*>(&root));
+ constexpr IntrusiveRedBlackTreeNode* GetMinImpl() const {
+ return freebsd::RB_MIN(const_cast<RootType&>(m_root));
}
- IntrusiveRedBlackTreeNode* GetMaxImpl() const {
- return RB_MAX(const_cast<RootType*>(&root));
+ constexpr IntrusiveRedBlackTreeNode* GetMaxImpl() const {
+ return freebsd::RB_MAX(const_cast<RootType&>(m_root));
}
- IntrusiveRedBlackTreeNode* RemoveImpl(IntrusiveRedBlackTreeNode* node) {
- return RB_REMOVE(&root, node);
+ constexpr IntrusiveRedBlackTreeNode* RemoveImpl(IntrusiveRedBlackTreeNode* node) {
+ return freebsd::RB_REMOVE(m_root, node);
}
public:
- static IntrusiveRedBlackTreeNode* GetNext(IntrusiveRedBlackTreeNode* node) {
- return RB_NEXT(node);
+ static constexpr IntrusiveRedBlackTreeNode* GetNext(IntrusiveRedBlackTreeNode* node) {
+ return freebsd::RB_NEXT(node);
}
- static IntrusiveRedBlackTreeNode* GetPrev(IntrusiveRedBlackTreeNode* node) {
- return RB_PREV(node);
+ static constexpr IntrusiveRedBlackTreeNode* GetPrev(IntrusiveRedBlackTreeNode* node) {
+ return freebsd::RB_PREV(node);
}
- static const IntrusiveRedBlackTreeNode* GetNext(const IntrusiveRedBlackTreeNode* node) {
+ static constexpr IntrusiveRedBlackTreeNode const* GetNext(
+ IntrusiveRedBlackTreeNode const* node) {
return static_cast<const IntrusiveRedBlackTreeNode*>(
GetNext(const_cast<IntrusiveRedBlackTreeNode*>(node)));
}
- static const IntrusiveRedBlackTreeNode* GetPrev(const IntrusiveRedBlackTreeNode* node) {
+ static constexpr IntrusiveRedBlackTreeNode const* GetPrev(
+ IntrusiveRedBlackTreeNode const* node) {
return static_cast<const IntrusiveRedBlackTreeNode*>(
GetPrev(const_cast<IntrusiveRedBlackTreeNode*>(node)));
}
public:
- constexpr IntrusiveRedBlackTreeImpl() {}
+ constexpr IntrusiveRedBlackTreeImpl() = default;
// Iterator accessors.
- iterator begin() {
+ constexpr iterator begin() {
return iterator(this->GetMinImpl());
}
- const_iterator begin() const {
+ constexpr const_iterator begin() const {
return const_iterator(this->GetMinImpl());
}
- iterator end() {
+ constexpr iterator end() {
return iterator(static_cast<IntrusiveRedBlackTreeNode*>(nullptr));
}
- const_iterator end() const {
+ constexpr const_iterator end() const {
return const_iterator(static_cast<const IntrusiveRedBlackTreeNode*>(nullptr));
}
- const_iterator cbegin() const {
+ constexpr const_iterator cbegin() const {
return this->begin();
}
- const_iterator cend() const {
+ constexpr const_iterator cend() const {
return this->end();
}
- iterator iterator_to(reference ref) {
- return iterator(&ref);
+ constexpr iterator iterator_to(reference ref) {
+ return iterator(std::addressof(ref));
}
- const_iterator iterator_to(const_reference ref) const {
- return const_iterator(&ref);
+ constexpr const_iterator iterator_to(const_reference ref) const {
+ return const_iterator(std::addressof(ref));
}
// Content management.
- bool empty() const {
+ constexpr bool empty() const {
return this->EmptyImpl();
}
- reference back() {
+ constexpr reference back() {
return *this->GetMaxImpl();
}
- const_reference back() const {
+ constexpr const_reference back() const {
return *this->GetMaxImpl();
}
- reference front() {
+ constexpr reference front() {
return *this->GetMinImpl();
}
- const_reference front() const {
+ constexpr const_reference front() const {
return *this->GetMinImpl();
}
- iterator erase(iterator it) {
+ constexpr iterator erase(iterator it) {
auto cur = std::addressof(*it);
auto next = GetNext(cur);
this->RemoveImpl(cur);
@@ -234,16 +242,16 @@ public:
} // namespace impl
template <typename T>
-concept HasLightCompareType = requires {
- { std::is_same<typename T::LightCompareType, void>::value } -> std::convertible_to<bool>;
+concept HasRedBlackKeyType = requires {
+ { std::is_same<typename T::RedBlackKeyType, void>::value } -> std::convertible_to<bool>;
};
namespace impl {
template <typename T, typename Default>
- consteval auto* GetLightCompareType() {
- if constexpr (HasLightCompareType<T>) {
- return static_cast<typename T::LightCompareType*>(nullptr);
+ consteval auto* GetRedBlackKeyType() {
+ if constexpr (HasRedBlackKeyType<T>) {
+ return static_cast<typename T::RedBlackKeyType*>(nullptr);
} else {
return static_cast<Default*>(nullptr);
}
@@ -252,16 +260,17 @@ namespace impl {
} // namespace impl
template <typename T, typename Default>
-using LightCompareType = std::remove_pointer_t<decltype(impl::GetLightCompareType<T, Default>())>;
+using RedBlackKeyType = std::remove_pointer_t<decltype(impl::GetRedBlackKeyType<T, Default>())>;
template <class T, class Traits, class Comparator>
class IntrusiveRedBlackTree {
+ YUZU_NON_COPYABLE(IntrusiveRedBlackTree);
public:
using ImplType = impl::IntrusiveRedBlackTreeImpl;
private:
- ImplType impl{};
+ ImplType m_impl;
public:
template <bool Const>
@@ -277,9 +286,9 @@ public:
using iterator = Iterator<false>;
using const_iterator = Iterator<true>;
- using light_value_type = LightCompareType<Comparator, value_type>;
- using const_light_pointer = const light_value_type*;
- using const_light_reference = const light_value_type&;
+ using key_type = RedBlackKeyType<Comparator, value_type>;
+ using const_key_pointer = const key_type*;
+ using const_key_reference = const key_type&;
template <bool Const>
class Iterator {
@@ -298,183 +307,201 @@ public:
IntrusiveRedBlackTree::reference>;
private:
- ImplIterator iterator;
+ ImplIterator m_impl;
private:
- explicit Iterator(ImplIterator it) : iterator(it) {}
+ constexpr explicit Iterator(ImplIterator it) : m_impl(it) {}
- explicit Iterator(typename std::conditional<Const, ImplType::const_iterator,
- ImplType::iterator>::type::pointer ptr)
- : iterator(ptr) {}
+ constexpr explicit Iterator(typename ImplIterator::pointer p) : m_impl(p) {}
- ImplIterator GetImplIterator() const {
- return this->iterator;
+ constexpr ImplIterator GetImplIterator() const {
+ return m_impl;
}
public:
- bool operator==(const Iterator& rhs) const {
- return this->iterator == rhs.iterator;
+ constexpr bool operator==(const Iterator& rhs) const {
+ return m_impl == rhs.m_impl;
}
- bool operator!=(const Iterator& rhs) const {
+ constexpr bool operator!=(const Iterator& rhs) const {
return !(*this == rhs);
}
- pointer operator->() const {
- return Traits::GetParent(std::addressof(*this->iterator));
+ constexpr pointer operator->() const {
+ return Traits::GetParent(std::addressof(*m_impl));
}
- reference operator*() const {
- return *Traits::GetParent(std::addressof(*this->iterator));
+ constexpr reference operator*() const {
+ return *Traits::GetParent(std::addressof(*m_impl));
}
- Iterator& operator++() {
- ++this->iterator;
+ constexpr Iterator& operator++() {
+ ++m_impl;
return *this;
}
- Iterator& operator--() {
- --this->iterator;
+ constexpr Iterator& operator--() {
+ --m_impl;
return *this;
}
- Iterator operator++(int) {
+ constexpr Iterator operator++(int) {
const Iterator it{*this};
- ++this->iterator;
+ ++m_impl;
return it;
}
- Iterator operator--(int) {
+ constexpr Iterator operator--(int) {
const Iterator it{*this};
- --this->iterator;
+ --m_impl;
return it;
}
- operator Iterator<true>() const {
- return Iterator<true>(this->iterator);
+ constexpr operator Iterator<true>() const {
+ return Iterator<true>(m_impl);
}
};
private:
- static int CompareImpl(const IntrusiveRedBlackTreeNode* lhs,
- const IntrusiveRedBlackTreeNode* rhs) {
+ static constexpr int CompareImpl(const IntrusiveRedBlackTreeNode* lhs,
+ const IntrusiveRedBlackTreeNode* rhs) {
return Comparator::Compare(*Traits::GetParent(lhs), *Traits::GetParent(rhs));
}
- static int LightCompareImpl(const void* elm, const IntrusiveRedBlackTreeNode* rhs) {
- return Comparator::Compare(*static_cast<const_light_pointer>(elm), *Traits::GetParent(rhs));
+ static constexpr int CompareKeyImpl(const_key_reference key,
+ const IntrusiveRedBlackTreeNode* rhs) {
+ return Comparator::Compare(key, *Traits::GetParent(rhs));
}
// Define accessors using RB_* functions.
- IntrusiveRedBlackTreeNode* InsertImpl(IntrusiveRedBlackTreeNode* node) {
- return RB_INSERT(&impl.root, node, CompareImpl);
+ constexpr IntrusiveRedBlackTreeNode* InsertImpl(IntrusiveRedBlackTreeNode* node) {
+ return freebsd::RB_INSERT(m_impl.m_root, node, CompareImpl);
}
- IntrusiveRedBlackTreeNode* FindImpl(const IntrusiveRedBlackTreeNode* node) const {
- return RB_FIND(const_cast<ImplType::RootType*>(&impl.root),
- const_cast<IntrusiveRedBlackTreeNode*>(node), CompareImpl);
+ constexpr IntrusiveRedBlackTreeNode* FindImpl(IntrusiveRedBlackTreeNode const* node) const {
+ return freebsd::RB_FIND(const_cast<ImplType::RootType&>(m_impl.m_root),
+ const_cast<IntrusiveRedBlackTreeNode*>(node), CompareImpl);
}
- IntrusiveRedBlackTreeNode* NFindImpl(const IntrusiveRedBlackTreeNode* node) const {
- return RB_NFIND(const_cast<ImplType::RootType*>(&impl.root),
- const_cast<IntrusiveRedBlackTreeNode*>(node), CompareImpl);
+ constexpr IntrusiveRedBlackTreeNode* NFindImpl(IntrusiveRedBlackTreeNode const* node) const {
+ return freebsd::RB_NFIND(const_cast<ImplType::RootType&>(m_impl.m_root),
+ const_cast<IntrusiveRedBlackTreeNode*>(node), CompareImpl);
}
- IntrusiveRedBlackTreeNode* FindLightImpl(const_light_pointer lelm) const {
- return RB_FIND_LIGHT(const_cast<ImplType::RootType*>(&impl.root),
- static_cast<const void*>(lelm), LightCompareImpl);
+ constexpr IntrusiveRedBlackTreeNode* FindKeyImpl(const_key_reference key) const {
+ return freebsd::RB_FIND_KEY(const_cast<ImplType::RootType&>(m_impl.m_root), key,
+ CompareKeyImpl);
}
- IntrusiveRedBlackTreeNode* NFindLightImpl(const_light_pointer lelm) const {
- return RB_NFIND_LIGHT(const_cast<ImplType::RootType*>(&impl.root),
- static_cast<const void*>(lelm), LightCompareImpl);
+ constexpr IntrusiveRedBlackTreeNode* NFindKeyImpl(const_key_reference key) const {
+ return freebsd::RB_NFIND_KEY(const_cast<ImplType::RootType&>(m_impl.m_root), key,
+ CompareKeyImpl);
+ }
+
+ constexpr IntrusiveRedBlackTreeNode* FindExistingImpl(
+ IntrusiveRedBlackTreeNode const* node) const {
+ return freebsd::RB_FIND_EXISTING(const_cast<ImplType::RootType&>(m_impl.m_root),
+ const_cast<IntrusiveRedBlackTreeNode*>(node), CompareImpl);
+ }
+
+ constexpr IntrusiveRedBlackTreeNode* FindExistingKeyImpl(const_key_reference key) const {
+ return freebsd::RB_FIND_EXISTING_KEY(const_cast<ImplType::RootType&>(m_impl.m_root), key,
+ CompareKeyImpl);
}
public:
constexpr IntrusiveRedBlackTree() = default;
// Iterator accessors.
- iterator begin() {
- return iterator(this->impl.begin());
+ constexpr iterator begin() {
+ return iterator(m_impl.begin());
}
- const_iterator begin() const {
- return const_iterator(this->impl.begin());
+ constexpr const_iterator begin() const {
+ return const_iterator(m_impl.begin());
}
- iterator end() {
- return iterator(this->impl.end());
+ constexpr iterator end() {
+ return iterator(m_impl.end());
}
- const_iterator end() const {
- return const_iterator(this->impl.end());
+ constexpr const_iterator end() const {
+ return const_iterator(m_impl.end());
}
- const_iterator cbegin() const {
+ constexpr const_iterator cbegin() const {
return this->begin();
}
- const_iterator cend() const {
+ constexpr const_iterator cend() const {
return this->end();
}
- iterator iterator_to(reference ref) {
- return iterator(this->impl.iterator_to(*Traits::GetNode(std::addressof(ref))));
+ constexpr iterator iterator_to(reference ref) {
+ return iterator(m_impl.iterator_to(*Traits::GetNode(std::addressof(ref))));
}
- const_iterator iterator_to(const_reference ref) const {
- return const_iterator(this->impl.iterator_to(*Traits::GetNode(std::addressof(ref))));
+ constexpr const_iterator iterator_to(const_reference ref) const {
+ return const_iterator(m_impl.iterator_to(*Traits::GetNode(std::addressof(ref))));
}
// Content management.
- bool empty() const {
- return this->impl.empty();
+ constexpr bool empty() const {
+ return m_impl.empty();
}
- reference back() {
- return *Traits::GetParent(std::addressof(this->impl.back()));
+ constexpr reference back() {
+ return *Traits::GetParent(std::addressof(m_impl.back()));
}
- const_reference back() const {
- return *Traits::GetParent(std::addressof(this->impl.back()));
+ constexpr const_reference back() const {
+ return *Traits::GetParent(std::addressof(m_impl.back()));
}
- reference front() {
- return *Traits::GetParent(std::addressof(this->impl.front()));
+ constexpr reference front() {
+ return *Traits::GetParent(std::addressof(m_impl.front()));
}
- const_reference front() const {
- return *Traits::GetParent(std::addressof(this->impl.front()));
+ constexpr const_reference front() const {
+ return *Traits::GetParent(std::addressof(m_impl.front()));
}
- iterator erase(iterator it) {
- return iterator(this->impl.erase(it.GetImplIterator()));
+ constexpr iterator erase(iterator it) {
+ return iterator(m_impl.erase(it.GetImplIterator()));
}
- iterator insert(reference ref) {
+ constexpr iterator insert(reference ref) {
ImplType::pointer node = Traits::GetNode(std::addressof(ref));
this->InsertImpl(node);
return iterator(node);
}
- iterator find(const_reference ref) const {
+ constexpr iterator find(const_reference ref) const {
return iterator(this->FindImpl(Traits::GetNode(std::addressof(ref))));
}
- iterator nfind(const_reference ref) const {
+ constexpr iterator nfind(const_reference ref) const {
return iterator(this->NFindImpl(Traits::GetNode(std::addressof(ref))));
}
- iterator find_light(const_light_reference ref) const {
- return iterator(this->FindLightImpl(std::addressof(ref)));
+ constexpr iterator find_key(const_key_reference ref) const {
+ return iterator(this->FindKeyImpl(ref));
+ }
+
+ constexpr iterator nfind_key(const_key_reference ref) const {
+ return iterator(this->NFindKeyImpl(ref));
+ }
+
+ constexpr iterator find_existing(const_reference ref) const {
+ return iterator(this->FindExistingImpl(Traits::GetNode(std::addressof(ref))));
}
- iterator nfind_light(const_light_reference ref) const {
- return iterator(this->NFindLightImpl(std::addressof(ref)));
+ constexpr iterator find_existing_key(const_key_reference ref) const {
+ return iterator(this->FindExistingKeyImpl(ref));
}
};
-template <auto T, class Derived = impl::GetParentType<T>>
+template <auto T, class Derived = Common::impl::GetParentType<T>>
class IntrusiveRedBlackTreeMemberTraits;
template <class Parent, IntrusiveRedBlackTreeNode Parent::*Member, class Derived>
@@ -498,19 +525,16 @@ private:
return std::addressof(parent->*Member);
}
- static constexpr Derived* GetParent(IntrusiveRedBlackTreeNode* node) {
- return GetParentPointer<Member, Derived>(node);
+ static Derived* GetParent(IntrusiveRedBlackTreeNode* node) {
+ return Common::GetParentPointer<Member, Derived>(node);
}
- static constexpr Derived const* GetParent(const IntrusiveRedBlackTreeNode* node) {
- return GetParentPointer<Member, Derived>(node);
+ static Derived const* GetParent(IntrusiveRedBlackTreeNode const* node) {
+ return Common::GetParentPointer<Member, Derived>(node);
}
-
-private:
- static constexpr TypedStorage<Derived> DerivedStorage = {};
};
-template <auto T, class Derived = impl::GetParentType<T>>
+template <auto T, class Derived = Common::impl::GetParentType<T>>
class IntrusiveRedBlackTreeMemberTraitsDeferredAssert;
template <class Parent, IntrusiveRedBlackTreeNode Parent::*Member, class Derived>
@@ -521,11 +545,6 @@ public:
IntrusiveRedBlackTree<Derived, IntrusiveRedBlackTreeMemberTraitsDeferredAssert, Comparator>;
using TreeTypeImpl = impl::IntrusiveRedBlackTreeImpl;
- static constexpr bool IsValid() {
- TypedStorage<Derived> DerivedStorage = {};
- return GetParent(GetNode(GetPointer(DerivedStorage))) == GetPointer(DerivedStorage);
- }
-
private:
template <class, class, class>
friend class IntrusiveRedBlackTree;
@@ -540,30 +559,36 @@ private:
return std::addressof(parent->*Member);
}
- static constexpr Derived* GetParent(IntrusiveRedBlackTreeNode* node) {
- return GetParentPointer<Member, Derived>(node);
+ static Derived* GetParent(IntrusiveRedBlackTreeNode* node) {
+ return Common::GetParentPointer<Member, Derived>(node);
}
- static constexpr Derived const* GetParent(const IntrusiveRedBlackTreeNode* node) {
- return GetParentPointer<Member, Derived>(node);
+ static Derived const* GetParent(IntrusiveRedBlackTreeNode const* node) {
+ return Common::GetParentPointer<Member, Derived>(node);
}
};
template <class Derived>
-class IntrusiveRedBlackTreeBaseNode : public IntrusiveRedBlackTreeNode {
+class alignas(void*) IntrusiveRedBlackTreeBaseNode : public IntrusiveRedBlackTreeNode {
public:
+ using IntrusiveRedBlackTreeNode::IntrusiveRedBlackTreeNode;
+
constexpr Derived* GetPrev() {
- return static_cast<Derived*>(impl::IntrusiveRedBlackTreeImpl::GetPrev(this));
+ return static_cast<Derived*>(static_cast<IntrusiveRedBlackTreeBaseNode*>(
+ impl::IntrusiveRedBlackTreeImpl::GetPrev(this)));
}
constexpr const Derived* GetPrev() const {
- return static_cast<const Derived*>(impl::IntrusiveRedBlackTreeImpl::GetPrev(this));
+ return static_cast<const Derived*>(static_cast<const IntrusiveRedBlackTreeBaseNode*>(
+ impl::IntrusiveRedBlackTreeImpl::GetPrev(this)));
}
constexpr Derived* GetNext() {
- return static_cast<Derived*>(impl::IntrusiveRedBlackTreeImpl::GetNext(this));
+ return static_cast<Derived*>(static_cast<IntrusiveRedBlackTreeBaseNode*>(
+ impl::IntrusiveRedBlackTreeImpl::GetNext(this)));
}
constexpr const Derived* GetNext() const {
- return static_cast<const Derived*>(impl::IntrusiveRedBlackTreeImpl::GetNext(this));
+ return static_cast<const Derived*>(static_cast<const IntrusiveRedBlackTreeBaseNode*>(
+ impl::IntrusiveRedBlackTreeImpl::GetNext(this)));
}
};
@@ -581,19 +606,22 @@ private:
friend class impl::IntrusiveRedBlackTreeImpl;
static constexpr IntrusiveRedBlackTreeNode* GetNode(Derived* parent) {
- return static_cast<IntrusiveRedBlackTreeNode*>(parent);
+ return static_cast<IntrusiveRedBlackTreeNode*>(
+ static_cast<IntrusiveRedBlackTreeBaseNode<Derived>*>(parent));
}
static constexpr IntrusiveRedBlackTreeNode const* GetNode(Derived const* parent) {
- return static_cast<const IntrusiveRedBlackTreeNode*>(parent);
+ return static_cast<const IntrusiveRedBlackTreeNode*>(
+ static_cast<const IntrusiveRedBlackTreeBaseNode<Derived>*>(parent));
}
static constexpr Derived* GetParent(IntrusiveRedBlackTreeNode* node) {
- return static_cast<Derived*>(node);
+ return static_cast<Derived*>(static_cast<IntrusiveRedBlackTreeBaseNode<Derived>*>(node));
}
- static constexpr Derived const* GetParent(const IntrusiveRedBlackTreeNode* node) {
- return static_cast<const Derived*>(node);
+ static constexpr Derived const* GetParent(IntrusiveRedBlackTreeNode const* node) {
+ return static_cast<const Derived*>(
+ static_cast<const IntrusiveRedBlackTreeBaseNode<Derived>*>(node));
}
};
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp
index 4a2462ec4..b3793106d 100644
--- a/src/common/logging/backend.cpp
+++ b/src/common/logging/backend.cpp
@@ -5,10 +5,8 @@
#include <atomic>
#include <chrono>
#include <climits>
-#include <exception>
#include <stop_token>
#include <thread>
-#include <vector>
#include <fmt/format.h>
diff --git a/src/common/logging/backend.h b/src/common/logging/backend.h
index bf785f402..a0e80fe3c 100644
--- a/src/common/logging/backend.h
+++ b/src/common/logging/backend.h
@@ -4,7 +4,6 @@
#pragma once
-#include <filesystem>
#include "common/logging/filter.h"
namespace Common::Log {
diff --git a/src/common/logging/filter.cpp b/src/common/logging/filter.cpp
index 4afc1369a..4acbff649 100644
--- a/src/common/logging/filter.cpp
+++ b/src/common/logging/filter.cpp
@@ -101,6 +101,7 @@ bool ParseFilterRule(Filter& instance, Iterator begin, Iterator end) {
SUB(Service, GRC) \
SUB(Service, HID) \
SUB(Service, IRS) \
+ SUB(Service, JIT) \
SUB(Service, LBL) \
SUB(Service, LDN) \
SUB(Service, LDR) \
@@ -119,6 +120,7 @@ bool ParseFilterRule(Filter& instance, Iterator begin, Iterator end) {
SUB(Service, NPNS) \
SUB(Service, NS) \
SUB(Service, NVDRV) \
+ SUB(Service, NVFlinger) \
SUB(Service, OLSC) \
SUB(Service, PCIE) \
SUB(Service, PCTL) \
diff --git a/src/common/logging/filter.h b/src/common/logging/filter.h
index 1a3074e04..29419f051 100644
--- a/src/common/logging/filter.h
+++ b/src/common/logging/filter.h
@@ -7,7 +7,6 @@
#include <array>
#include <chrono>
#include <cstddef>
-#include <string_view>
#include "common/logging/log.h"
namespace Common::Log {
diff --git a/src/common/logging/text_formatter.cpp b/src/common/logging/text_formatter.cpp
index 10b2281db..b2cad58d8 100644
--- a/src/common/logging/text_formatter.cpp
+++ b/src/common/logging/text_formatter.cpp
@@ -10,12 +10,10 @@
#endif
#include "common/assert.h"
-#include "common/common_funcs.h"
#include "common/logging/filter.h"
#include "common/logging/log.h"
#include "common/logging/log_entry.h"
#include "common/logging/text_formatter.h"
-#include "common/string_util.h"
namespace Common::Log {
diff --git a/src/common/logging/text_formatter.h b/src/common/logging/text_formatter.h
index 171e74cfe..92c0bf0c5 100644
--- a/src/common/logging/text_formatter.h
+++ b/src/common/logging/text_formatter.h
@@ -4,7 +4,6 @@
#pragma once
-#include <cstddef>
#include <string>
namespace Common::Log {
diff --git a/src/common/logging/types.h b/src/common/logging/types.h
index 2b6e4daa7..99c15fa96 100644
--- a/src/common/logging/types.h
+++ b/src/common/logging/types.h
@@ -69,6 +69,7 @@ enum class Class : u8 {
Service_GRC, ///< The game recording service
Service_HID, ///< The HID (Human interface device) service
Service_IRS, ///< The IRS service
+ Service_JIT, ///< The JIT service
Service_LBL, ///< The LBL (LCD backlight) service
Service_LDN, ///< The LDN (Local domain network) service
Service_LDR, ///< The loader service
@@ -87,6 +88,7 @@ enum class Class : u8 {
Service_NPNS, ///< The NPNS service
Service_NS, ///< The NS services
Service_NVDRV, ///< The NVDRV (Nvidia driver) service
+ Service_NVFlinger, ///< The NVFlinger service
Service_OLSC, ///< The OLSC service
Service_PCIE, ///< The PCIe service
Service_PCTL, ///< The PCTL (Parental control) service
diff --git a/src/common/math_util.h b/src/common/math_util.h
index 510c4e56d..54485bf53 100644
--- a/src/common/math_util.h
+++ b/src/common/math_util.h
@@ -4,6 +4,7 @@
#pragma once
+#include <algorithm>
#include <cstdlib>
#include <type_traits>
@@ -20,10 +21,32 @@ struct Rectangle {
constexpr Rectangle() = default;
+ constexpr Rectangle(T width, T height) : right(width), bottom(height) {}
+
constexpr Rectangle(T left_, T top_, T right_, T bottom_)
: left(left_), top(top_), right(right_), bottom(bottom_) {}
- [[nodiscard]] T GetWidth() const {
+ [[nodiscard]] constexpr T Left() const {
+ return left;
+ }
+
+ [[nodiscard]] constexpr T Top() const {
+ return top;
+ }
+
+ [[nodiscard]] constexpr T Right() const {
+ return right;
+ }
+
+ [[nodiscard]] constexpr T Bottom() const {
+ return bottom;
+ }
+
+ [[nodiscard]] constexpr bool IsEmpty() const {
+ return (GetWidth() <= 0) || (GetHeight() <= 0);
+ }
+
+ [[nodiscard]] constexpr T GetWidth() const {
if constexpr (std::is_floating_point_v<T>) {
return std::abs(right - left);
} else {
@@ -31,7 +54,7 @@ struct Rectangle {
}
}
- [[nodiscard]] T GetHeight() const {
+ [[nodiscard]] constexpr T GetHeight() const {
if constexpr (std::is_floating_point_v<T>) {
return std::abs(bottom - top);
} else {
@@ -39,18 +62,35 @@ struct Rectangle {
}
}
- [[nodiscard]] Rectangle<T> TranslateX(const T x) const {
+ [[nodiscard]] constexpr Rectangle<T> TranslateX(const T x) const {
return Rectangle{left + x, top, right + x, bottom};
}
- [[nodiscard]] Rectangle<T> TranslateY(const T y) const {
+ [[nodiscard]] constexpr Rectangle<T> TranslateY(const T y) const {
return Rectangle{left, top + y, right, bottom + y};
}
- [[nodiscard]] Rectangle<T> Scale(const float s) const {
+ [[nodiscard]] constexpr Rectangle<T> Scale(const float s) const {
return Rectangle{left, top, static_cast<T>(static_cast<float>(left + GetWidth()) * s),
static_cast<T>(static_cast<float>(top + GetHeight()) * s)};
}
+
+ [[nodiscard]] constexpr bool operator==(const Rectangle<T>& rhs) const {
+ return (left == rhs.left) && (top == rhs.top) && (right == rhs.right) &&
+ (bottom == rhs.bottom);
+ }
+
+ [[nodiscard]] constexpr bool operator!=(const Rectangle<T>& rhs) const {
+ return !operator==(rhs);
+ }
+
+ [[nodiscard]] constexpr bool Intersect(const Rectangle<T>& with, Rectangle<T>* result) const {
+ result->left = std::max(left, with.left);
+ result->top = std::max(top, with.top);
+ result->right = std::min(right, with.right);
+ result->bottom = std::min(bottom, with.bottom);
+ return !result->IsEmpty();
+ }
};
template <typename T>
diff --git a/src/common/memory_detect.cpp b/src/common/memory_detect.cpp
index 8cff6ec37..7a75a5ff4 100644
--- a/src/common/memory_detect.cpp
+++ b/src/common/memory_detect.cpp
@@ -70,4 +70,4 @@ const MemoryInfo& GetMemInfo() {
return mem_info;
}
-} // namespace Common \ No newline at end of file
+} // namespace Common
diff --git a/src/common/nvidia_flags.cpp b/src/common/nvidia_flags.cpp
index d1afd1f1d..c732c233e 100644
--- a/src/common/nvidia_flags.cpp
+++ b/src/common/nvidia_flags.cpp
@@ -6,7 +6,6 @@
#include <fmt/format.h>
-#include "common/fs/file.h"
#include "common/fs/fs.h"
#include "common/fs/path_util.h"
#include "common/nvidia_flags.h"
diff --git a/src/common/page_table.h b/src/common/page_table.h
index 82d91e9f3..13f4b44c0 100644
--- a/src/common/page_table.h
+++ b/src/common/page_table.h
@@ -5,7 +5,6 @@
#pragma once
#include <atomic>
-#include <tuple>
#include "common/common_types.h"
#include "common/virtual_buffer.h"
diff --git a/src/common/parent_of_member.h b/src/common/parent_of_member.h
index 58c70b0e7..ad075615b 100644
--- a/src/common/parent_of_member.h
+++ b/src/common/parent_of_member.h
@@ -7,7 +7,6 @@
#include <type_traits>
#include "common/assert.h"
-#include "common/common_types.h"
namespace Common {
namespace detail {
diff --git a/src/common/ring_buffer.h b/src/common/ring_buffer.h
index 4a8d09806..db6aa6b95 100644
--- a/src/common/ring_buffer.h
+++ b/src/common/ring_buffer.h
@@ -12,7 +12,6 @@
#include <new>
#include <type_traits>
#include <vector>
-#include "common/common_types.h"
namespace Common {
diff --git a/src/common/settings.h b/src/common/settings.h
index a37d83fb3..86e0fa140 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -38,6 +38,7 @@ enum class CPUAccuracy : u32 {
Auto = 0,
Accurate = 1,
Unsafe = 2,
+ Paranoid = 3,
};
enum class FullscreenMode : u32 {
@@ -470,7 +471,7 @@ struct Values {
// Cpu
RangedSetting<CPUAccuracy> cpu_accuracy{CPUAccuracy::Auto, CPUAccuracy::Auto,
- CPUAccuracy::Unsafe, "cpu_accuracy"};
+ CPUAccuracy::Paranoid, "cpu_accuracy"};
// TODO: remove cpu_accuracy_first_time, migration setting added 8 July 2021
BasicSetting<bool> cpu_accuracy_first_time{true, "cpu_accuracy_first_time"};
BasicSetting<bool> cpu_debug_mode{false, "cpu_debug_mode"};
diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp
index 662171138..3695dae4d 100644
--- a/src/common/string_util.cpp
+++ b/src/common/string_util.cpp
@@ -5,11 +5,9 @@
#include <algorithm>
#include <cctype>
#include <codecvt>
-#include <cstdlib>
#include <locale>
#include <sstream>
-#include "common/logging/log.h"
#include "common/string_util.h"
#ifdef _WIN32
diff --git a/src/common/telemetry.cpp b/src/common/telemetry.cpp
index 98c82cd17..67261c55b 100644
--- a/src/common/telemetry.cpp
+++ b/src/common/telemetry.cpp
@@ -4,7 +4,6 @@
#include <algorithm>
#include <cstring>
-#include "common/assert.h"
#include "common/scm_rev.h"
#include "common/telemetry.h"
diff --git a/src/common/telemetry.h b/src/common/telemetry.h
index 3524c857e..f9a824a7d 100644
--- a/src/common/telemetry.h
+++ b/src/common/telemetry.h
@@ -8,7 +8,6 @@
#include <map>
#include <memory>
#include <string>
-#include <string_view>
#include "common/common_funcs.h"
#include "common/common_types.h"
diff --git a/src/common/thread.h b/src/common/thread.h
index a8c17c71a..626609372 100644
--- a/src/common/thread.h
+++ b/src/common/thread.h
@@ -17,7 +17,7 @@ namespace Common {
class Event {
public:
void Set() {
- std::lock_guard lk{mutex};
+ std::scoped_lock lk{mutex};
if (!is_set) {
is_set = true;
condvar.notify_one();
diff --git a/src/common/threadsafe_queue.h b/src/common/threadsafe_queue.h
index 2c8c2b90e..7272ac6e8 100644
--- a/src/common/threadsafe_queue.h
+++ b/src/common/threadsafe_queue.h
@@ -52,7 +52,7 @@ public:
// line before cv.wait
// TODO(bunnei): This can be replaced with C++20 waitable atomics when properly supported.
// See discussion on https://github.com/yuzu-emu/yuzu/pull/3173 for details.
- std::lock_guard lock{cv_mutex};
+ std::scoped_lock lock{cv_mutex};
cv.notify_one();
}
@@ -159,7 +159,7 @@ public:
template <typename Arg>
void Push(Arg&& t) {
- std::lock_guard lock{write_lock};
+ std::scoped_lock lock{write_lock};
spsc_queue.Push(t);
}
diff --git a/src/common/tree.h b/src/common/tree.h
index 18faa4a48..28370e343 100644
--- a/src/common/tree.h
+++ b/src/common/tree.h
@@ -43,294 +43,265 @@
* The maximum height of a red-black tree is 2lg (n+1).
*/
-#include "common/assert.h"
+namespace Common::freebsd {
-namespace Common {
+enum class RBColor {
+ RB_BLACK = 0,
+ RB_RED = 1,
+};
+
+#pragma pack(push, 4)
template <typename T>
-class RBHead {
+class RBEntry {
public:
- [[nodiscard]] T* Root() {
- return rbh_root;
- }
+ constexpr RBEntry() = default;
- [[nodiscard]] const T* Root() const {
- return rbh_root;
+ [[nodiscard]] constexpr T* Left() {
+ return m_rbe_left;
}
-
- void SetRoot(T* root) {
- rbh_root = root;
+ [[nodiscard]] constexpr const T* Left() const {
+ return m_rbe_left;
}
- [[nodiscard]] bool IsEmpty() const {
- return Root() == nullptr;
+ constexpr void SetLeft(T* e) {
+ m_rbe_left = e;
}
-private:
- T* rbh_root = nullptr;
-};
-
-enum class EntryColor {
- Black,
- Red,
-};
-
-template <typename T>
-class RBEntry {
-public:
- [[nodiscard]] T* Left() {
- return rbe_left;
+ [[nodiscard]] constexpr T* Right() {
+ return m_rbe_right;
}
-
- [[nodiscard]] const T* Left() const {
- return rbe_left;
+ [[nodiscard]] constexpr const T* Right() const {
+ return m_rbe_right;
}
- void SetLeft(T* left) {
- rbe_left = left;
+ constexpr void SetRight(T* e) {
+ m_rbe_right = e;
}
- [[nodiscard]] T* Right() {
- return rbe_right;
+ [[nodiscard]] constexpr T* Parent() {
+ return m_rbe_parent;
}
-
- [[nodiscard]] const T* Right() const {
- return rbe_right;
+ [[nodiscard]] constexpr const T* Parent() const {
+ return m_rbe_parent;
}
- void SetRight(T* right) {
- rbe_right = right;
+ constexpr void SetParent(T* e) {
+ m_rbe_parent = e;
}
- [[nodiscard]] T* Parent() {
- return rbe_parent;
+ [[nodiscard]] constexpr bool IsBlack() const {
+ return m_rbe_color == RBColor::RB_BLACK;
}
-
- [[nodiscard]] const T* Parent() const {
- return rbe_parent;
+ [[nodiscard]] constexpr bool IsRed() const {
+ return m_rbe_color == RBColor::RB_RED;
}
-
- void SetParent(T* parent) {
- rbe_parent = parent;
+ [[nodiscard]] constexpr RBColor Color() const {
+ return m_rbe_color;
}
- [[nodiscard]] bool IsBlack() const {
- return rbe_color == EntryColor::Black;
+ constexpr void SetColor(RBColor c) {
+ m_rbe_color = c;
}
- [[nodiscard]] bool IsRed() const {
- return rbe_color == EntryColor::Red;
- }
+private:
+ T* m_rbe_left{};
+ T* m_rbe_right{};
+ T* m_rbe_parent{};
+ RBColor m_rbe_color{RBColor::RB_BLACK};
+};
+#pragma pack(pop)
- [[nodiscard]] EntryColor Color() const {
- return rbe_color;
- }
+template <typename T>
+struct CheckRBEntry {
+ static constexpr bool value = false;
+};
+template <typename T>
+struct CheckRBEntry<RBEntry<T>> {
+ static constexpr bool value = true;
+};
- void SetColor(EntryColor color) {
- rbe_color = color;
- }
+template <typename T>
+concept IsRBEntry = CheckRBEntry<T>::value;
+template <typename T>
+concept HasRBEntry = requires(T& t, const T& ct) {
+ { t.GetRBEntry() } -> std::same_as<RBEntry<T>&>;
+ { ct.GetRBEntry() } -> std::same_as<const RBEntry<T>&>;
+};
+
+template <typename T>
+requires HasRBEntry<T>
+class RBHead {
private:
- T* rbe_left = nullptr;
- T* rbe_right = nullptr;
- T* rbe_parent = nullptr;
- EntryColor rbe_color{};
+ T* m_rbh_root = nullptr;
+
+public:
+ [[nodiscard]] constexpr T* Root() {
+ return m_rbh_root;
+ }
+ [[nodiscard]] constexpr const T* Root() const {
+ return m_rbh_root;
+ }
+ constexpr void SetRoot(T* root) {
+ m_rbh_root = root;
+ }
+
+ [[nodiscard]] constexpr bool IsEmpty() const {
+ return this->Root() == nullptr;
+ }
};
-template <typename Node>
-[[nodiscard]] RBEntry<Node>& RB_ENTRY(Node* node) {
- return node->GetEntry();
+template <typename T>
+requires HasRBEntry<T>
+[[nodiscard]] constexpr RBEntry<T>& RB_ENTRY(T* t) {
+ return t->GetRBEntry();
}
-
-template <typename Node>
-[[nodiscard]] const RBEntry<Node>& RB_ENTRY(const Node* node) {
- return node->GetEntry();
+template <typename T>
+requires HasRBEntry<T>
+[[nodiscard]] constexpr const RBEntry<T>& RB_ENTRY(const T* t) {
+ return t->GetRBEntry();
}
-template <typename Node>
-[[nodiscard]] Node* RB_PARENT(Node* node) {
- return RB_ENTRY(node).Parent();
+template <typename T>
+requires HasRBEntry<T>
+[[nodiscard]] constexpr T* RB_LEFT(T* t) {
+ return RB_ENTRY(t).Left();
}
-
-template <typename Node>
-[[nodiscard]] const Node* RB_PARENT(const Node* node) {
- return RB_ENTRY(node).Parent();
+template <typename T>
+requires HasRBEntry<T>
+[[nodiscard]] constexpr const T* RB_LEFT(const T* t) {
+ return RB_ENTRY(t).Left();
}
-template <typename Node>
-void RB_SET_PARENT(Node* node, Node* parent) {
- return RB_ENTRY(node).SetParent(parent);
+template <typename T>
+requires HasRBEntry<T>
+[[nodiscard]] constexpr T* RB_RIGHT(T* t) {
+ return RB_ENTRY(t).Right();
}
-
-template <typename Node>
-[[nodiscard]] Node* RB_LEFT(Node* node) {
- return RB_ENTRY(node).Left();
+template <typename T>
+requires HasRBEntry<T>
+[[nodiscard]] constexpr const T* RB_RIGHT(const T* t) {
+ return RB_ENTRY(t).Right();
}
-template <typename Node>
-[[nodiscard]] const Node* RB_LEFT(const Node* node) {
- return RB_ENTRY(node).Left();
+template <typename T>
+requires HasRBEntry<T>
+[[nodiscard]] constexpr T* RB_PARENT(T* t) {
+ return RB_ENTRY(t).Parent();
}
-
-template <typename Node>
-void RB_SET_LEFT(Node* node, Node* left) {
- return RB_ENTRY(node).SetLeft(left);
+template <typename T>
+requires HasRBEntry<T>
+[[nodiscard]] constexpr const T* RB_PARENT(const T* t) {
+ return RB_ENTRY(t).Parent();
}
-template <typename Node>
-[[nodiscard]] Node* RB_RIGHT(Node* node) {
- return RB_ENTRY(node).Right();
+template <typename T>
+requires HasRBEntry<T>
+constexpr void RB_SET_LEFT(T* t, T* e) {
+ RB_ENTRY(t).SetLeft(e);
}
-
-template <typename Node>
-[[nodiscard]] const Node* RB_RIGHT(const Node* node) {
- return RB_ENTRY(node).Right();
+template <typename T>
+requires HasRBEntry<T>
+constexpr void RB_SET_RIGHT(T* t, T* e) {
+ RB_ENTRY(t).SetRight(e);
}
-
-template <typename Node>
-void RB_SET_RIGHT(Node* node, Node* right) {
- return RB_ENTRY(node).SetRight(right);
+template <typename T>
+requires HasRBEntry<T>
+constexpr void RB_SET_PARENT(T* t, T* e) {
+ RB_ENTRY(t).SetParent(e);
}
-template <typename Node>
-[[nodiscard]] bool RB_IS_BLACK(const Node* node) {
- return RB_ENTRY(node).IsBlack();
+template <typename T>
+requires HasRBEntry<T>
+[[nodiscard]] constexpr bool RB_IS_BLACK(const T* t) {
+ return RB_ENTRY(t).IsBlack();
}
-
-template <typename Node>
-[[nodiscard]] bool RB_IS_RED(const Node* node) {
- return RB_ENTRY(node).IsRed();
+template <typename T>
+requires HasRBEntry<T>
+[[nodiscard]] constexpr bool RB_IS_RED(const T* t) {
+ return RB_ENTRY(t).IsRed();
}
-template <typename Node>
-[[nodiscard]] EntryColor RB_COLOR(const Node* node) {
- return RB_ENTRY(node).Color();
+template <typename T>
+requires HasRBEntry<T>
+[[nodiscard]] constexpr RBColor RB_COLOR(const T* t) {
+ return RB_ENTRY(t).Color();
}
-template <typename Node>
-void RB_SET_COLOR(Node* node, EntryColor color) {
- return RB_ENTRY(node).SetColor(color);
+template <typename T>
+requires HasRBEntry<T>
+constexpr void RB_SET_COLOR(T* t, RBColor c) {
+ RB_ENTRY(t).SetColor(c);
}
-template <typename Node>
-void RB_SET(Node* node, Node* parent) {
- auto& entry = RB_ENTRY(node);
- entry.SetParent(parent);
- entry.SetLeft(nullptr);
- entry.SetRight(nullptr);
- entry.SetColor(EntryColor::Red);
+template <typename T>
+requires HasRBEntry<T>
+constexpr void RB_SET(T* elm, T* parent) {
+ auto& rb_entry = RB_ENTRY(elm);
+ rb_entry.SetParent(parent);
+ rb_entry.SetLeft(nullptr);
+ rb_entry.SetRight(nullptr);
+ rb_entry.SetColor(RBColor::RB_RED);
}
-template <typename Node>
-void RB_SET_BLACKRED(Node* black, Node* red) {
- RB_SET_COLOR(black, EntryColor::Black);
- RB_SET_COLOR(red, EntryColor::Red);
+template <typename T>
+requires HasRBEntry<T>
+constexpr void RB_SET_BLACKRED(T* black, T* red) {
+ RB_SET_COLOR(black, RBColor::RB_BLACK);
+ RB_SET_COLOR(red, RBColor::RB_RED);
}
-template <typename Node>
-void RB_ROTATE_LEFT(RBHead<Node>* head, Node* elm, Node*& tmp) {
+template <typename T>
+requires HasRBEntry<T>
+constexpr void RB_ROTATE_LEFT(RBHead<T>& head, T* elm, T*& tmp) {
tmp = RB_RIGHT(elm);
- RB_SET_RIGHT(elm, RB_LEFT(tmp));
- if (RB_RIGHT(elm) != nullptr) {
+ if (RB_SET_RIGHT(elm, RB_LEFT(tmp)); RB_RIGHT(elm) != nullptr) {
RB_SET_PARENT(RB_LEFT(tmp), elm);
}
- RB_SET_PARENT(tmp, RB_PARENT(elm));
- if (RB_PARENT(tmp) != nullptr) {
+ if (RB_SET_PARENT(tmp, RB_PARENT(elm)); RB_PARENT(tmp) != nullptr) {
if (elm == RB_LEFT(RB_PARENT(elm))) {
RB_SET_LEFT(RB_PARENT(elm), tmp);
} else {
RB_SET_RIGHT(RB_PARENT(elm), tmp);
}
} else {
- head->SetRoot(tmp);
+ head.SetRoot(tmp);
}
RB_SET_LEFT(tmp, elm);
RB_SET_PARENT(elm, tmp);
}
-template <typename Node>
-void RB_ROTATE_RIGHT(RBHead<Node>* head, Node* elm, Node*& tmp) {
+template <typename T>
+requires HasRBEntry<T>
+constexpr void RB_ROTATE_RIGHT(RBHead<T>& head, T* elm, T*& tmp) {
tmp = RB_LEFT(elm);
- RB_SET_LEFT(elm, RB_RIGHT(tmp));
- if (RB_LEFT(elm) != nullptr) {
+ if (RB_SET_LEFT(elm, RB_RIGHT(tmp)); RB_LEFT(elm) != nullptr) {
RB_SET_PARENT(RB_RIGHT(tmp), elm);
}
- RB_SET_PARENT(tmp, RB_PARENT(elm));
- if (RB_PARENT(tmp) != nullptr) {
+ if (RB_SET_PARENT(tmp, RB_PARENT(elm)); RB_PARENT(tmp) != nullptr) {
if (elm == RB_LEFT(RB_PARENT(elm))) {
RB_SET_LEFT(RB_PARENT(elm), tmp);
} else {
RB_SET_RIGHT(RB_PARENT(elm), tmp);
}
} else {
- head->SetRoot(tmp);
+ head.SetRoot(tmp);
}
RB_SET_RIGHT(tmp, elm);
RB_SET_PARENT(elm, tmp);
}
-template <typename Node>
-void RB_INSERT_COLOR(RBHead<Node>* head, Node* elm) {
- Node* parent = nullptr;
- Node* tmp = nullptr;
-
- while ((parent = RB_PARENT(elm)) != nullptr && RB_IS_RED(parent)) {
- Node* gparent = RB_PARENT(parent);
- if (parent == RB_LEFT(gparent)) {
- tmp = RB_RIGHT(gparent);
- if (tmp && RB_IS_RED(tmp)) {
- RB_SET_COLOR(tmp, EntryColor::Black);
- RB_SET_BLACKRED(parent, gparent);
- elm = gparent;
- continue;
- }
-
- if (RB_RIGHT(parent) == elm) {
- RB_ROTATE_LEFT(head, parent, tmp);
- tmp = parent;
- parent = elm;
- elm = tmp;
- }
-
- RB_SET_BLACKRED(parent, gparent);
- RB_ROTATE_RIGHT(head, gparent, tmp);
- } else {
- tmp = RB_LEFT(gparent);
- if (tmp && RB_IS_RED(tmp)) {
- RB_SET_COLOR(tmp, EntryColor::Black);
- RB_SET_BLACKRED(parent, gparent);
- elm = gparent;
- continue;
- }
-
- if (RB_LEFT(parent) == elm) {
- RB_ROTATE_RIGHT(head, parent, tmp);
- tmp = parent;
- parent = elm;
- elm = tmp;
- }
-
- RB_SET_BLACKRED(parent, gparent);
- RB_ROTATE_LEFT(head, gparent, tmp);
- }
- }
-
- RB_SET_COLOR(head->Root(), EntryColor::Black);
-}
-
-template <typename Node>
-void RB_REMOVE_COLOR(RBHead<Node>* head, Node* parent, Node* elm) {
- Node* tmp;
- while ((elm == nullptr || RB_IS_BLACK(elm)) && elm != head->Root() && parent != nullptr) {
+template <typename T>
+requires HasRBEntry<T>
+constexpr void RB_REMOVE_COLOR(RBHead<T>& head, T* parent, T* elm) {
+ T* tmp;
+ while ((elm == nullptr || RB_IS_BLACK(elm)) && elm != head.Root()) {
if (RB_LEFT(parent) == elm) {
tmp = RB_RIGHT(parent);
- if (!tmp) {
- ASSERT_MSG(false, "tmp is invalid!");
- break;
- }
if (RB_IS_RED(tmp)) {
RB_SET_BLACKRED(tmp, parent);
RB_ROTATE_LEFT(head, parent, tmp);
@@ -339,29 +310,29 @@ void RB_REMOVE_COLOR(RBHead<Node>* head, Node* parent, Node* elm) {
if ((RB_LEFT(tmp) == nullptr || RB_IS_BLACK(RB_LEFT(tmp))) &&
(RB_RIGHT(tmp) == nullptr || RB_IS_BLACK(RB_RIGHT(tmp)))) {
- RB_SET_COLOR(tmp, EntryColor::Red);
+ RB_SET_COLOR(tmp, RBColor::RB_RED);
elm = parent;
parent = RB_PARENT(elm);
} else {
if (RB_RIGHT(tmp) == nullptr || RB_IS_BLACK(RB_RIGHT(tmp))) {
- Node* oleft;
+ T* oleft;
if ((oleft = RB_LEFT(tmp)) != nullptr) {
- RB_SET_COLOR(oleft, EntryColor::Black);
+ RB_SET_COLOR(oleft, RBColor::RB_BLACK);
}
- RB_SET_COLOR(tmp, EntryColor::Red);
+ RB_SET_COLOR(tmp, RBColor::RB_RED);
RB_ROTATE_RIGHT(head, tmp, oleft);
tmp = RB_RIGHT(parent);
}
RB_SET_COLOR(tmp, RB_COLOR(parent));
- RB_SET_COLOR(parent, EntryColor::Black);
+ RB_SET_COLOR(parent, RBColor::RB_BLACK);
if (RB_RIGHT(tmp)) {
- RB_SET_COLOR(RB_RIGHT(tmp), EntryColor::Black);
+ RB_SET_COLOR(RB_RIGHT(tmp), RBColor::RB_BLACK);
}
RB_ROTATE_LEFT(head, parent, tmp);
- elm = head->Root();
+ elm = head.Root();
break;
}
} else {
@@ -372,68 +343,56 @@ void RB_REMOVE_COLOR(RBHead<Node>* head, Node* parent, Node* elm) {
tmp = RB_LEFT(parent);
}
- if (!tmp) {
- ASSERT_MSG(false, "tmp is invalid!");
- break;
- }
-
if ((RB_LEFT(tmp) == nullptr || RB_IS_BLACK(RB_LEFT(tmp))) &&
(RB_RIGHT(tmp) == nullptr || RB_IS_BLACK(RB_RIGHT(tmp)))) {
- RB_SET_COLOR(tmp, EntryColor::Red);
+ RB_SET_COLOR(tmp, RBColor::RB_RED);
elm = parent;
parent = RB_PARENT(elm);
} else {
if (RB_LEFT(tmp) == nullptr || RB_IS_BLACK(RB_LEFT(tmp))) {
- Node* oright;
+ T* oright;
if ((oright = RB_RIGHT(tmp)) != nullptr) {
- RB_SET_COLOR(oright, EntryColor::Black);
+ RB_SET_COLOR(oright, RBColor::RB_BLACK);
}
- RB_SET_COLOR(tmp, EntryColor::Red);
+ RB_SET_COLOR(tmp, RBColor::RB_RED);
RB_ROTATE_LEFT(head, tmp, oright);
tmp = RB_LEFT(parent);
}
RB_SET_COLOR(tmp, RB_COLOR(parent));
- RB_SET_COLOR(parent, EntryColor::Black);
+ RB_SET_COLOR(parent, RBColor::RB_BLACK);
if (RB_LEFT(tmp)) {
- RB_SET_COLOR(RB_LEFT(tmp), EntryColor::Black);
+ RB_SET_COLOR(RB_LEFT(tmp), RBColor::RB_BLACK);
}
RB_ROTATE_RIGHT(head, parent, tmp);
- elm = head->Root();
+ elm = head.Root();
break;
}
}
}
if (elm) {
- RB_SET_COLOR(elm, EntryColor::Black);
+ RB_SET_COLOR(elm, RBColor::RB_BLACK);
}
}
-template <typename Node>
-Node* RB_REMOVE(RBHead<Node>* head, Node* elm) {
- Node* child = nullptr;
- Node* parent = nullptr;
- Node* old = elm;
- EntryColor color{};
-
- const auto finalize = [&] {
- if (color == EntryColor::Black) {
- RB_REMOVE_COLOR(head, parent, child);
- }
-
- return old;
- };
+template <typename T>
+requires HasRBEntry<T>
+constexpr T* RB_REMOVE(RBHead<T>& head, T* elm) {
+ T* child = nullptr;
+ T* parent = nullptr;
+ T* old = elm;
+ RBColor color = RBColor::RB_BLACK;
if (RB_LEFT(elm) == nullptr) {
child = RB_RIGHT(elm);
} else if (RB_RIGHT(elm) == nullptr) {
child = RB_LEFT(elm);
} else {
- Node* left;
+ T* left;
elm = RB_RIGHT(elm);
while ((left = RB_LEFT(elm)) != nullptr) {
elm = left;
@@ -446,6 +405,7 @@ Node* RB_REMOVE(RBHead<Node>* head, Node* elm) {
if (child) {
RB_SET_PARENT(child, parent);
}
+
if (parent) {
if (RB_LEFT(parent) == elm) {
RB_SET_LEFT(parent, child);
@@ -453,14 +413,14 @@ Node* RB_REMOVE(RBHead<Node>* head, Node* elm) {
RB_SET_RIGHT(parent, child);
}
} else {
- head->SetRoot(child);
+ head.SetRoot(child);
}
if (RB_PARENT(elm) == old) {
parent = elm;
}
- elm->SetEntry(old->GetEntry());
+ elm->SetRBEntry(old->GetRBEntry());
if (RB_PARENT(old)) {
if (RB_LEFT(RB_PARENT(old)) == old) {
@@ -469,17 +429,24 @@ Node* RB_REMOVE(RBHead<Node>* head, Node* elm) {
RB_SET_RIGHT(RB_PARENT(old), elm);
}
} else {
- head->SetRoot(elm);
+ head.SetRoot(elm);
}
+
RB_SET_PARENT(RB_LEFT(old), elm);
+
if (RB_RIGHT(old)) {
RB_SET_PARENT(RB_RIGHT(old), elm);
}
+
if (parent) {
left = parent;
}
- return finalize();
+ if (color == RBColor::RB_BLACK) {
+ RB_REMOVE_COLOR(head, parent, child);
+ }
+
+ return old;
}
parent = RB_PARENT(elm);
@@ -495,17 +462,69 @@ Node* RB_REMOVE(RBHead<Node>* head, Node* elm) {
RB_SET_RIGHT(parent, child);
}
} else {
- head->SetRoot(child);
+ head.SetRoot(child);
+ }
+
+ if (color == RBColor::RB_BLACK) {
+ RB_REMOVE_COLOR(head, parent, child);
+ }
+
+ return old;
+}
+
+template <typename T>
+requires HasRBEntry<T>
+constexpr void RB_INSERT_COLOR(RBHead<T>& head, T* elm) {
+ T *parent = nullptr, *tmp = nullptr;
+ while ((parent = RB_PARENT(elm)) != nullptr && RB_IS_RED(parent)) {
+ T* gparent = RB_PARENT(parent);
+ if (parent == RB_LEFT(gparent)) {
+ tmp = RB_RIGHT(gparent);
+ if (tmp && RB_IS_RED(tmp)) {
+ RB_SET_COLOR(tmp, RBColor::RB_BLACK);
+ RB_SET_BLACKRED(parent, gparent);
+ elm = gparent;
+ continue;
+ }
+
+ if (RB_RIGHT(parent) == elm) {
+ RB_ROTATE_LEFT(head, parent, tmp);
+ tmp = parent;
+ parent = elm;
+ elm = tmp;
+ }
+
+ RB_SET_BLACKRED(parent, gparent);
+ RB_ROTATE_RIGHT(head, gparent, tmp);
+ } else {
+ tmp = RB_LEFT(gparent);
+ if (tmp && RB_IS_RED(tmp)) {
+ RB_SET_COLOR(tmp, RBColor::RB_BLACK);
+ RB_SET_BLACKRED(parent, gparent);
+ elm = gparent;
+ continue;
+ }
+
+ if (RB_LEFT(parent) == elm) {
+ RB_ROTATE_RIGHT(head, parent, tmp);
+ tmp = parent;
+ parent = elm;
+ elm = tmp;
+ }
+
+ RB_SET_BLACKRED(parent, gparent);
+ RB_ROTATE_LEFT(head, gparent, tmp);
+ }
}
- return finalize();
+ RB_SET_COLOR(head.Root(), RBColor::RB_BLACK);
}
-// Inserts a node into the RB tree
-template <typename Node, typename CompareFunction>
-Node* RB_INSERT(RBHead<Node>* head, Node* elm, CompareFunction cmp) {
- Node* parent = nullptr;
- Node* tmp = head->Root();
+template <typename T, typename Compare>
+requires HasRBEntry<T>
+constexpr T* RB_INSERT(RBHead<T>& head, T* elm, Compare cmp) {
+ T* parent = nullptr;
+ T* tmp = head.Root();
int comp = 0;
while (tmp) {
@@ -529,17 +548,17 @@ Node* RB_INSERT(RBHead<Node>* head, Node* elm, CompareFunction cmp) {
RB_SET_RIGHT(parent, elm);
}
} else {
- head->SetRoot(elm);
+ head.SetRoot(elm);
}
RB_INSERT_COLOR(head, elm);
return nullptr;
}
-// Finds the node with the same key as elm
-template <typename Node, typename CompareFunction>
-Node* RB_FIND(RBHead<Node>* head, Node* elm, CompareFunction cmp) {
- Node* tmp = head->Root();
+template <typename T, typename Compare>
+requires HasRBEntry<T>
+constexpr T* RB_FIND(RBHead<T>& head, T* elm, Compare cmp) {
+ T* tmp = head.Root();
while (tmp) {
const int comp = cmp(elm, tmp);
@@ -555,11 +574,11 @@ Node* RB_FIND(RBHead<Node>* head, Node* elm, CompareFunction cmp) {
return nullptr;
}
-// Finds the first node greater than or equal to the search key
-template <typename Node, typename CompareFunction>
-Node* RB_NFIND(RBHead<Node>* head, Node* elm, CompareFunction cmp) {
- Node* tmp = head->Root();
- Node* res = nullptr;
+template <typename T, typename Compare>
+requires HasRBEntry<T>
+constexpr T* RB_NFIND(RBHead<T>& head, T* elm, Compare cmp) {
+ T* tmp = head.Root();
+ T* res = nullptr;
while (tmp) {
const int comp = cmp(elm, tmp);
@@ -576,13 +595,13 @@ Node* RB_NFIND(RBHead<Node>* head, Node* elm, CompareFunction cmp) {
return res;
}
-// Finds the node with the same key as lelm
-template <typename Node, typename CompareFunction>
-Node* RB_FIND_LIGHT(RBHead<Node>* head, const void* lelm, CompareFunction lcmp) {
- Node* tmp = head->Root();
+template <typename T, typename U, typename Compare>
+requires HasRBEntry<T>
+constexpr T* RB_FIND_KEY(RBHead<T>& head, const U& key, Compare cmp) {
+ T* tmp = head.Root();
while (tmp) {
- const int comp = lcmp(lelm, tmp);
+ const int comp = cmp(key, tmp);
if (comp < 0) {
tmp = RB_LEFT(tmp);
} else if (comp > 0) {
@@ -595,14 +614,14 @@ Node* RB_FIND_LIGHT(RBHead<Node>* head, const void* lelm, CompareFunction lcmp)
return nullptr;
}
-// Finds the first node greater than or equal to the search key
-template <typename Node, typename CompareFunction>
-Node* RB_NFIND_LIGHT(RBHead<Node>* head, const void* lelm, CompareFunction lcmp) {
- Node* tmp = head->Root();
- Node* res = nullptr;
+template <typename T, typename U, typename Compare>
+requires HasRBEntry<T>
+constexpr T* RB_NFIND_KEY(RBHead<T>& head, const U& key, Compare cmp) {
+ T* tmp = head.Root();
+ T* res = nullptr;
while (tmp) {
- const int comp = lcmp(lelm, tmp);
+ const int comp = cmp(key, tmp);
if (comp < 0) {
res = tmp;
tmp = RB_LEFT(tmp);
@@ -616,8 +635,43 @@ Node* RB_NFIND_LIGHT(RBHead<Node>* head, const void* lelm, CompareFunction lcmp)
return res;
}
-template <typename Node>
-Node* RB_NEXT(Node* elm) {
+template <typename T, typename Compare>
+requires HasRBEntry<T>
+constexpr T* RB_FIND_EXISTING(RBHead<T>& head, T* elm, Compare cmp) {
+ T* tmp = head.Root();
+
+ while (true) {
+ const int comp = cmp(elm, tmp);
+ if (comp < 0) {
+ tmp = RB_LEFT(tmp);
+ } else if (comp > 0) {
+ tmp = RB_RIGHT(tmp);
+ } else {
+ return tmp;
+ }
+ }
+}
+
+template <typename T, typename U, typename Compare>
+requires HasRBEntry<T>
+constexpr T* RB_FIND_EXISTING_KEY(RBHead<T>& head, const U& key, Compare cmp) {
+ T* tmp = head.Root();
+
+ while (true) {
+ const int comp = cmp(key, tmp);
+ if (comp < 0) {
+ tmp = RB_LEFT(tmp);
+ } else if (comp > 0) {
+ tmp = RB_RIGHT(tmp);
+ } else {
+ return tmp;
+ }
+ }
+}
+
+template <typename T>
+requires HasRBEntry<T>
+constexpr T* RB_NEXT(T* elm) {
if (RB_RIGHT(elm)) {
elm = RB_RIGHT(elm);
while (RB_LEFT(elm)) {
@@ -636,8 +690,9 @@ Node* RB_NEXT(Node* elm) {
return elm;
}
-template <typename Node>
-Node* RB_PREV(Node* elm) {
+template <typename T>
+requires HasRBEntry<T>
+constexpr T* RB_PREV(T* elm) {
if (RB_LEFT(elm)) {
elm = RB_LEFT(elm);
while (RB_RIGHT(elm)) {
@@ -656,30 +711,32 @@ Node* RB_PREV(Node* elm) {
return elm;
}
-template <typename Node>
-Node* RB_MINMAX(RBHead<Node>* head, bool is_min) {
- Node* tmp = head->Root();
- Node* parent = nullptr;
+template <typename T>
+requires HasRBEntry<T>
+constexpr T* RB_MIN(RBHead<T>& head) {
+ T* tmp = head.Root();
+ T* parent = nullptr;
while (tmp) {
parent = tmp;
- if (is_min) {
- tmp = RB_LEFT(tmp);
- } else {
- tmp = RB_RIGHT(tmp);
- }
+ tmp = RB_LEFT(tmp);
}
return parent;
}
-template <typename Node>
-Node* RB_MIN(RBHead<Node>* head) {
- return RB_MINMAX(head, true);
-}
+template <typename T>
+requires HasRBEntry<T>
+constexpr T* RB_MAX(RBHead<T>& head) {
+ T* tmp = head.Root();
+ T* parent = nullptr;
-template <typename Node>
-Node* RB_MAX(RBHead<Node>* head) {
- return RB_MINMAX(head, false);
+ while (tmp) {
+ parent = tmp;
+ tmp = RB_RIGHT(tmp);
+ }
+
+ return parent;
}
-} // namespace Common
+
+} // namespace Common::freebsd
diff --git a/src/common/uint128.h b/src/common/uint128.h
index 4780b2f9d..ad1b90414 100644
--- a/src/common/uint128.h
+++ b/src/common/uint128.h
@@ -4,7 +4,6 @@
#pragma once
-#include <cstring>
#include <utility>
#ifdef _MSC_VER
@@ -13,6 +12,7 @@
#pragma intrinsic(_umul128)
#pragma intrinsic(_udiv128)
#else
+#include <cstring>
#include <x86intrin.h>
#endif
diff --git a/src/common/uuid.h b/src/common/uuid.h
index fe31e64e6..c450d9e20 100644
--- a/src/common/uuid.h
+++ b/src/common/uuid.h
@@ -7,7 +7,6 @@
#include <array>
#include <functional>
#include <string>
-#include <string_view>
#include "common/common_types.h"
diff --git a/src/common/virtual_buffer.h b/src/common/virtual_buffer.h
index fb1a6f81f..cac4f4895 100644
--- a/src/common/virtual_buffer.h
+++ b/src/common/virtual_buffer.h
@@ -4,7 +4,6 @@
#pragma once
-#include <type_traits>
#include <utility>
namespace Common {
diff --git a/src/common/wall_clock.cpp b/src/common/wall_clock.cpp
index 9acf7551e..f30d91692 100644
--- a/src/common/wall_clock.cpp
+++ b/src/common/wall_clock.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <cstdint>
-
#include "common/uint128.h"
#include "common/wall_clock.h"
diff --git a/src/common/x64/cpu_detect.cpp b/src/common/x64/cpu_detect.cpp
index d81edb140..f5296b32a 100644
--- a/src/common/x64/cpu_detect.cpp
+++ b/src/common/x64/cpu_detect.cpp
@@ -4,7 +4,6 @@
#include <array>
#include <cstring>
#include <iterator>
-#include <span>
#include <string_view>
#include "common/bit_util.h"
#include "common/common_types.h"
diff --git a/src/common/x64/native_clock.cpp b/src/common/x64/native_clock.cpp
index 91b842829..7fd9d22f8 100644
--- a/src/common/x64/native_clock.cpp
+++ b/src/common/x64/native_clock.cpp
@@ -4,33 +4,55 @@
#include <array>
#include <chrono>
-#include <limits>
-#include <mutex>
#include <thread>
#include "common/atomic_ops.h"
#include "common/uint128.h"
#include "common/x64/native_clock.h"
+#ifdef _MSC_VER
+#include <intrin.h>
+#endif
+
namespace Common {
+#ifdef _MSC_VER
+__forceinline static u64 FencedRDTSC() {
+ _mm_lfence();
+ _ReadWriteBarrier();
+ const u64 result = __rdtsc();
+ _mm_lfence();
+ _ReadWriteBarrier();
+ return result;
+}
+#else
+static u64 FencedRDTSC() {
+ u64 result;
+ asm volatile("lfence\n\t"
+ "rdtsc\n\t"
+ "shl $32, %%rdx\n\t"
+ "or %%rdx, %0\n\t"
+ "lfence"
+ : "=a"(result)
+ :
+ : "rdx", "memory", "cc");
+ return result;
+}
+#endif
+
u64 EstimateRDTSCFrequency() {
// Discard the first result measuring the rdtsc.
- _mm_mfence();
- __rdtsc();
+ FencedRDTSC();
std::this_thread::sleep_for(std::chrono::milliseconds{1});
- _mm_mfence();
- __rdtsc();
+ FencedRDTSC();
// Get the current time.
const auto start_time = std::chrono::steady_clock::now();
- _mm_mfence();
- const u64 tsc_start = __rdtsc();
+ const u64 tsc_start = FencedRDTSC();
// Wait for 200 milliseconds.
std::this_thread::sleep_for(std::chrono::milliseconds{200});
const auto end_time = std::chrono::steady_clock::now();
- _mm_mfence();
- const u64 tsc_end = __rdtsc();
+ const u64 tsc_end = FencedRDTSC();
// Calculate differences.
const u64 timer_diff = static_cast<u64>(
std::chrono::duration_cast<std::chrono::nanoseconds>(end_time - start_time).count());
@@ -44,8 +66,7 @@ NativeClock::NativeClock(u64 emulated_cpu_frequency_, u64 emulated_clock_frequen
u64 rtsc_frequency_)
: WallClock(emulated_cpu_frequency_, emulated_clock_frequency_, true), rtsc_frequency{
rtsc_frequency_} {
- _mm_mfence();
- time_point.inner.last_measure = __rdtsc();
+ time_point.inner.last_measure = FencedRDTSC();
time_point.inner.accumulated_ticks = 0U;
ns_rtsc_factor = GetFixedPoint64Factor(NS_RATIO, rtsc_frequency);
us_rtsc_factor = GetFixedPoint64Factor(US_RATIO, rtsc_frequency);
@@ -57,10 +78,10 @@ NativeClock::NativeClock(u64 emulated_cpu_frequency_, u64 emulated_clock_frequen
u64 NativeClock::GetRTSC() {
TimePoint new_time_point{};
TimePoint current_time_point{};
+
+ current_time_point.pack = Common::AtomicLoad128(time_point.pack.data());
do {
- current_time_point.pack = time_point.pack;
- _mm_mfence();
- const u64 current_measure = __rdtsc();
+ const u64 current_measure = FencedRDTSC();
u64 diff = current_measure - current_time_point.inner.last_measure;
diff = diff & ~static_cast<u64>(static_cast<s64>(diff) >> 63); // max(diff, 0)
new_time_point.inner.last_measure = current_measure > current_time_point.inner.last_measure
@@ -68,7 +89,7 @@ u64 NativeClock::GetRTSC() {
: current_time_point.inner.last_measure;
new_time_point.inner.accumulated_ticks = current_time_point.inner.accumulated_ticks + diff;
} while (!Common::AtomicCompareAndSwap(time_point.pack.data(), new_time_point.pack,
- current_time_point.pack));
+ current_time_point.pack, current_time_point.pack));
/// The clock cannot be more precise than the guest timer, remove the lower bits
return new_time_point.inner.accumulated_ticks & inaccuracy_mask;
}
@@ -77,13 +98,13 @@ void NativeClock::Pause(bool is_paused) {
if (!is_paused) {
TimePoint current_time_point{};
TimePoint new_time_point{};
+
+ current_time_point.pack = Common::AtomicLoad128(time_point.pack.data());
do {
- current_time_point.pack = time_point.pack;
new_time_point.pack = current_time_point.pack;
- _mm_mfence();
- new_time_point.inner.last_measure = __rdtsc();
+ new_time_point.inner.last_measure = FencedRDTSC();
} while (!Common::AtomicCompareAndSwap(time_point.pack.data(), new_time_point.pack,
- current_time_point.pack));
+ current_time_point.pack, current_time_point.pack));
}
}
diff --git a/src/common/x64/native_clock.h b/src/common/x64/native_clock.h
index 7cbd400d2..2c3082ea0 100644
--- a/src/common/x64/native_clock.h
+++ b/src/common/x64/native_clock.h
@@ -4,8 +4,6 @@
#pragma once
-#include <optional>
-
#include "common/wall_clock.h"
namespace Common {
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 5db6a1b3a..b681d21a7 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -13,6 +13,8 @@ add_library(core STATIC
arm/dynarmic/arm_exclusive_monitor.h
arm/exclusive_monitor.cpp
arm/exclusive_monitor.h
+ arm/symbols.cpp
+ arm/symbols.h
constants.cpp
constants.h
core.cpp
@@ -122,6 +124,8 @@ add_library(core STATIC
frontend/applets/error.h
frontend/applets/general_frontend.cpp
frontend/applets/general_frontend.h
+ frontend/applets/mii_edit.cpp
+ frontend/applets/mii_edit.h
frontend/applets/profile_select.cpp
frontend/applets/profile_select.h
frontend/applets/software_keyboard.cpp
@@ -207,6 +211,8 @@ add_library(core STATIC
hle/kernel/k_memory_region.h
hle/kernel/k_memory_region_type.h
hle/kernel/k_page_bitmap.h
+ hle/kernel/k_page_buffer.cpp
+ hle/kernel/k_page_buffer.h
hle/kernel/k_page_heap.cpp
hle/kernel/k_page_heap.h
hle/kernel/k_page_linked_list.h
@@ -244,6 +250,8 @@ add_library(core STATIC
hle/kernel/k_system_control.h
hle/kernel/k_thread.cpp
hle/kernel/k_thread.h
+ hle/kernel/k_thread_local_page.cpp
+ hle/kernel/k_thread_local_page.h
hle/kernel/k_thread_queue.cpp
hle/kernel/k_thread_queue.h
hle/kernel/k_trace.h
@@ -300,6 +308,9 @@ add_library(core STATIC
hle/service/am/applets/applet_error.h
hle/service/am/applets/applet_general_backend.cpp
hle/service/am/applets/applet_general_backend.h
+ hle/service/am/applets/applet_mii_edit.cpp
+ hle/service/am/applets/applet_mii_edit.h
+ hle/service/am/applets/applet_mii_edit_types.h
hle/service/am/applets/applet_profile_select.cpp
hle/service/am/applets/applet_profile_select.h
hle/service/am/applets/applet_software_keyboard.cpp
@@ -449,6 +460,10 @@ add_library(core STATIC
hle/service/hid/controllers/touchscreen.h
hle/service/hid/controllers/xpad.cpp
hle/service/hid/controllers/xpad.h
+ hle/service/jit/jit_context.cpp
+ hle/service/jit/jit_context.h
+ hle/service/jit/jit.cpp
+ hle/service/jit/jit.h
hle/service/lbl/lbl.cpp
hle/service/lbl/lbl.h
hle/service/ldn/errors.h
@@ -526,10 +541,35 @@ add_library(core STATIC
hle/service/nvdrv/nvmemp.h
hle/service/nvdrv/syncpoint_manager.cpp
hle/service/nvdrv/syncpoint_manager.h
- hle/service/nvflinger/buffer_queue.cpp
- hle/service/nvflinger/buffer_queue.h
+ hle/service/nvflinger/binder.h
+ hle/service/nvflinger/buffer_item.h
+ hle/service/nvflinger/buffer_item_consumer.cpp
+ hle/service/nvflinger/buffer_item_consumer.h
+ hle/service/nvflinger/buffer_queue_consumer.cpp
+ hle/service/nvflinger/buffer_queue_consumer.h
+ hle/service/nvflinger/buffer_queue_core.cpp
+ hle/service/nvflinger/buffer_queue_core.h
+ hle/service/nvflinger/buffer_queue_defs.h
+ hle/service/nvflinger/buffer_queue_producer.cpp
+ hle/service/nvflinger/buffer_queue_producer.h
+ hle/service/nvflinger/buffer_slot.h
+ hle/service/nvflinger/buffer_transform_flags.h
+ hle/service/nvflinger/consumer_base.cpp
+ hle/service/nvflinger/consumer_base.h
+ hle/service/nvflinger/consumer_listener.h
+ hle/service/nvflinger/graphic_buffer_producer.cpp
+ hle/service/nvflinger/graphic_buffer_producer.h
+ hle/service/nvflinger/hos_binder_driver_server.cpp
+ hle/service/nvflinger/hos_binder_driver_server.h
hle/service/nvflinger/nvflinger.cpp
hle/service/nvflinger/nvflinger.h
+ hle/service/nvflinger/parcel.h
+ hle/service/nvflinger/pixel_format.h
+ hle/service/nvflinger/producer_listener.h
+ hle/service/nvflinger/status.h
+ hle/service/nvflinger/ui/fence.h
+ hle/service/nvflinger/ui/graphic_buffer.h
+ hle/service/nvflinger/window.h
hle/service/olsc/olsc.cpp
hle/service/olsc/olsc.h
hle/service/pcie/pcie.cpp
diff --git a/src/core/arm/arm_interface.cpp b/src/core/arm/arm_interface.cpp
index 0951e1976..08bf1201d 100644
--- a/src/core/arm/arm_interface.cpp
+++ b/src/core/arm/arm_interface.cpp
@@ -8,134 +8,13 @@
#include "common/common_types.h"
#include "common/logging/log.h"
#include "core/arm/arm_interface.h"
+#include "core/arm/symbols.h"
#include "core/core.h"
+#include "core/hle/kernel/k_process.h"
#include "core/loader/loader.h"
#include "core/memory.h"
namespace Core {
-namespace {
-
-constexpr u64 ELF_DYNAMIC_TAG_NULL = 0;
-constexpr u64 ELF_DYNAMIC_TAG_STRTAB = 5;
-constexpr u64 ELF_DYNAMIC_TAG_SYMTAB = 6;
-constexpr u64 ELF_DYNAMIC_TAG_SYMENT = 11;
-
-enum class ELFSymbolType : u8 {
- None = 0,
- Object = 1,
- Function = 2,
- Section = 3,
- File = 4,
- Common = 5,
- TLS = 6,
-};
-
-enum class ELFSymbolBinding : u8 {
- Local = 0,
- Global = 1,
- Weak = 2,
-};
-
-enum class ELFSymbolVisibility : u8 {
- Default = 0,
- Internal = 1,
- Hidden = 2,
- Protected = 3,
-};
-
-struct ELFSymbol {
- u32 name_index;
- union {
- u8 info;
-
- BitField<0, 4, ELFSymbolType> type;
- BitField<4, 4, ELFSymbolBinding> binding;
- };
- ELFSymbolVisibility visibility;
- u16 sh_index;
- u64 value;
- u64 size;
-};
-static_assert(sizeof(ELFSymbol) == 0x18, "ELFSymbol has incorrect size.");
-
-using Symbols = std::vector<std::pair<ELFSymbol, std::string>>;
-
-Symbols GetSymbols(VAddr text_offset, Core::Memory::Memory& memory) {
- const auto mod_offset = text_offset + memory.Read32(text_offset + 4);
-
- if (mod_offset < text_offset || (mod_offset & 0b11) != 0 ||
- memory.Read32(mod_offset) != Common::MakeMagic('M', 'O', 'D', '0')) {
- return {};
- }
-
- const auto dynamic_offset = memory.Read32(mod_offset + 0x4) + mod_offset;
-
- VAddr string_table_offset{};
- VAddr symbol_table_offset{};
- u64 symbol_entry_size{};
-
- VAddr dynamic_index = dynamic_offset;
- while (true) {
- const u64 tag = memory.Read64(dynamic_index);
- const u64 value = memory.Read64(dynamic_index + 0x8);
- dynamic_index += 0x10;
-
- if (tag == ELF_DYNAMIC_TAG_NULL) {
- break;
- }
-
- if (tag == ELF_DYNAMIC_TAG_STRTAB) {
- string_table_offset = value;
- } else if (tag == ELF_DYNAMIC_TAG_SYMTAB) {
- symbol_table_offset = value;
- } else if (tag == ELF_DYNAMIC_TAG_SYMENT) {
- symbol_entry_size = value;
- }
- }
-
- if (string_table_offset == 0 || symbol_table_offset == 0 || symbol_entry_size == 0) {
- return {};
- }
-
- const auto string_table_address = text_offset + string_table_offset;
- const auto symbol_table_address = text_offset + symbol_table_offset;
-
- Symbols out;
-
- VAddr symbol_index = symbol_table_address;
- while (symbol_index < string_table_address) {
- ELFSymbol symbol{};
- memory.ReadBlock(symbol_index, &symbol, sizeof(ELFSymbol));
-
- VAddr string_offset = string_table_address + symbol.name_index;
- std::string name;
- for (u8 c = memory.Read8(string_offset); c != 0; c = memory.Read8(++string_offset)) {
- name += static_cast<char>(c);
- }
-
- symbol_index += symbol_entry_size;
- out.push_back({symbol, name});
- }
-
- return out;
-}
-
-std::optional<std::string> GetSymbolName(const Symbols& symbols, VAddr func_address) {
- const auto iter =
- std::find_if(symbols.begin(), symbols.end(), [func_address](const auto& pair) {
- const auto& symbol = pair.first;
- const auto end_address = symbol.value + symbol.size;
- return func_address >= symbol.value && func_address < end_address;
- });
-
- if (iter == symbols.end()) {
- return std::nullopt;
- }
-
- return iter->second;
-}
-
-} // Anonymous namespace
constexpr u64 SEGMENT_BASE = 0x7100000000ull;
@@ -169,9 +48,11 @@ std::vector<ARM_Interface::BacktraceEntry> ARM_Interface::GetBacktraceFromContex
return {};
}
- std::map<std::string, Symbols> symbols;
+ std::map<std::string, Symbols::Symbols> symbols;
for (const auto& module : modules) {
- symbols.insert_or_assign(module.second, GetSymbols(module.first, memory));
+ symbols.insert_or_assign(module.second,
+ Symbols::GetSymbols(module.first, system.Memory(),
+ system.CurrentProcess()->Is64BitProcess()));
}
for (auto& entry : out) {
@@ -193,7 +74,7 @@ std::vector<ARM_Interface::BacktraceEntry> ARM_Interface::GetBacktraceFromContex
const auto symbol_set = symbols.find(entry.module);
if (symbol_set != symbols.end()) {
- const auto symbol = GetSymbolName(symbol_set->second, entry.offset);
+ const auto symbol = Symbols::GetSymbolName(symbol_set->second, entry.offset);
if (symbol.has_value()) {
// TODO(DarkLordZach): Add demangling of symbol names.
entry.name = *symbol;
@@ -225,9 +106,11 @@ std::vector<ARM_Interface::BacktraceEntry> ARM_Interface::GetBacktrace() const {
return {};
}
- std::map<std::string, Symbols> symbols;
+ std::map<std::string, Symbols::Symbols> symbols;
for (const auto& module : modules) {
- symbols.insert_or_assign(module.second, GetSymbols(module.first, memory));
+ symbols.insert_or_assign(module.second,
+ Symbols::GetSymbols(module.first, system.Memory(),
+ system.CurrentProcess()->Is64BitProcess()));
}
for (auto& entry : out) {
@@ -249,7 +132,7 @@ std::vector<ARM_Interface::BacktraceEntry> ARM_Interface::GetBacktrace() const {
const auto symbol_set = symbols.find(entry.module);
if (symbol_set != symbols.end()) {
- const auto symbol = GetSymbolName(symbol_set->second, entry.offset);
+ const auto symbol = Symbols::GetSymbolName(symbol_set->second, entry.offset);
if (symbol.has_value()) {
// TODO(DarkLordZach): Add demangling of symbol names.
entry.name = *symbol;
diff --git a/src/core/arm/arm_interface.h b/src/core/arm/arm_interface.h
index c60322442..dce2f4195 100644
--- a/src/core/arm/arm_interface.h
+++ b/src/core/arm/arm_interface.h
@@ -171,6 +171,9 @@ public:
/// Prepare core for thread reschedule (if needed to correctly handle state)
virtual void PrepareReschedule() = 0;
+ /// Signal an interrupt and ask the core to halt as soon as possible.
+ virtual void SignalInterrupt() = 0;
+
struct BacktraceEntry {
std::string module;
u64 address;
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
index c1c843b8f..6f3d53dad 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
@@ -25,6 +25,9 @@ namespace Core {
using namespace Common::Literals;
+constexpr Dynarmic::HaltReason break_loop = Dynarmic::HaltReason::UserDefined2;
+constexpr Dynarmic::HaltReason svc_call = Dynarmic::HaltReason::UserDefined3;
+
class DynarmicCallbacks32 : public Dynarmic::A32::UserCallbacks {
public:
explicit DynarmicCallbacks32(ARM_Dynarmic_32& parent_)
@@ -70,11 +73,13 @@ public:
}
void InterpreterFallback(u32 pc, std::size_t num_instructions) override {
+ parent.LogBacktrace();
UNIMPLEMENTED_MSG("This should never happen, pc = {:08X}, code = {:08X}", pc,
MemoryReadCode(pc));
}
void ExceptionRaised(u32 pc, Dynarmic::A32::Exception exception) override {
+ parent.LogBacktrace();
LOG_CRITICAL(Core_ARM,
"ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X}, thumb = {})",
exception, pc, MemoryReadCode(pc), parent.IsInThumbMode());
@@ -82,15 +87,13 @@ public:
}
void CallSVC(u32 swi) override {
- parent.svc_called = true;
parent.svc_swi = swi;
- parent.jit->HaltExecution();
+ parent.jit->HaltExecution(svc_call);
}
void AddTicks(u64 ticks) override {
- if (parent.uses_wall_clock) {
- return;
- }
+ ASSERT_MSG(!parent.uses_wall_clock, "This should never happen - dynarmic ticking disabled");
+
// Divide the number of ticks by the amount of CPU cores. TODO(Subv): This yields only a
// rough approximation of the amount of executed ticks in the system, it may be thrown off
// if not all cores are doing a similar amount of work. Instead of doing this, we should
@@ -106,12 +109,8 @@ public:
}
u64 GetTicksRemaining() override {
- if (parent.uses_wall_clock) {
- if (!parent.interrupt_handlers[parent.core_index].IsInterrupted()) {
- return minimum_run_cycles;
- }
- return 0U;
- }
+ ASSERT_MSG(!parent.uses_wall_clock, "This should never happen - dynarmic ticking disabled");
+
return std::max<s64>(parent.system.CoreTiming().GetDowncount(), 0);
}
@@ -146,10 +145,11 @@ std::shared_ptr<Dynarmic::A32::Jit> ARM_Dynarmic_32::MakeJit(Common::PageTable*
// Timing
config.wall_clock_cntpct = uses_wall_clock;
+ config.enable_cycle_counting = !uses_wall_clock;
// Code cache size
- config.code_cache_size = 128_MiB;
- config.far_code_offset = 100_MiB;
+ config.code_cache_size = 512_MiB;
+ config.far_code_offset = 400_MiB;
// Safe optimizations
if (Settings::values.cpu_debug_mode) {
@@ -186,35 +186,41 @@ std::shared_ptr<Dynarmic::A32::Jit> ARM_Dynarmic_32::MakeJit(Common::PageTable*
if (!Settings::values.cpuopt_recompile_exclusives) {
config.recompile_on_exclusive_fastmem_failure = false;
}
- }
+ } else {
+ // Unsafe optimizations
+ if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Unsafe) {
+ config.unsafe_optimizations = true;
+ if (Settings::values.cpuopt_unsafe_unfuse_fma) {
+ config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
+ }
+ if (Settings::values.cpuopt_unsafe_reduce_fp_error) {
+ config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
+ }
+ if (Settings::values.cpuopt_unsafe_ignore_standard_fpcr) {
+ config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreStandardFPCRValue;
+ }
+ if (Settings::values.cpuopt_unsafe_inaccurate_nan) {
+ config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
+ }
+ if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
+ config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
+ }
+ }
- // Unsafe optimizations
- if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Unsafe) {
- config.unsafe_optimizations = true;
- if (Settings::values.cpuopt_unsafe_unfuse_fma) {
+ // Curated optimizations
+ if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Auto) {
+ config.unsafe_optimizations = true;
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
- }
- if (Settings::values.cpuopt_unsafe_reduce_fp_error) {
- config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
- }
- if (Settings::values.cpuopt_unsafe_ignore_standard_fpcr) {
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreStandardFPCRValue;
- }
- if (Settings::values.cpuopt_unsafe_inaccurate_nan) {
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
- }
- if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
}
- }
- // Curated optimizations
- if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Auto) {
- config.unsafe_optimizations = true;
- config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
- config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreStandardFPCRValue;
- config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
- config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
+ // Paranoia mode for debugging optimizations
+ if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Paranoid) {
+ config.unsafe_optimizations = false;
+ config.optimizations = Dynarmic::no_optimizations;
+ }
}
return std::make_unique<Dynarmic::A32::Jit>(config);
@@ -222,13 +228,11 @@ std::shared_ptr<Dynarmic::A32::Jit> ARM_Dynarmic_32::MakeJit(Common::PageTable*
void ARM_Dynarmic_32::Run() {
while (true) {
- jit->Run();
- if (!svc_called) {
- break;
+ const auto hr = jit->Run();
+ if (Has(hr, svc_call)) {
+ Kernel::Svc::Call(system, svc_swi);
}
- svc_called = false;
- Kernel::Svc::Call(system, svc_swi);
- if (shutdown) {
+ if (Has(hr, break_loop) || !uses_wall_clock) {
break;
}
}
@@ -314,8 +318,11 @@ void ARM_Dynarmic_32::LoadContext(const ThreadContext32& ctx) {
}
void ARM_Dynarmic_32::PrepareReschedule() {
- jit->HaltExecution();
- shutdown = true;
+ jit->HaltExecution(break_loop);
+}
+
+void ARM_Dynarmic_32::SignalInterrupt() {
+ jit->HaltExecution(break_loop);
}
void ARM_Dynarmic_32::ClearInstructionCache() {
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.h b/src/core/arm/dynarmic/arm_dynarmic_32.h
index 5d47b600d..3f68a4ff1 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.h
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.h
@@ -57,6 +57,7 @@ public:
void LoadContext(const ThreadContext64& ctx) override {}
void PrepareReschedule() override;
+ void SignalInterrupt() override;
void ClearExclusiveState() override;
void ClearInstructionCache() override;
@@ -83,9 +84,6 @@ private:
// SVC callback
u32 svc_swi{};
- bool svc_called{};
-
- bool shutdown{};
};
} // namespace Core
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
index aa74fce4d..1fcb2b891 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
@@ -26,6 +26,9 @@ namespace Core {
using Vector = Dynarmic::A64::Vector;
using namespace Common::Literals;
+constexpr Dynarmic::HaltReason break_loop = Dynarmic::HaltReason::UserDefined2;
+constexpr Dynarmic::HaltReason svc_call = Dynarmic::HaltReason::UserDefined3;
+
class DynarmicCallbacks64 : public Dynarmic::A64::UserCallbacks {
public:
explicit DynarmicCallbacks64(ARM_Dynarmic_64& parent_)
@@ -81,6 +84,7 @@ public:
}
void InterpreterFallback(u64 pc, std::size_t num_instructions) override {
+ parent.LogBacktrace();
LOG_ERROR(Core_ARM,
"Unimplemented instruction @ 0x{:X} for {} instructions (instr = {:08X})", pc,
num_instructions, MemoryReadCode(pc));
@@ -93,17 +97,19 @@ public:
static constexpr u64 ICACHE_LINE_SIZE = 64;
const u64 cache_line_start = value & ~(ICACHE_LINE_SIZE - 1);
- parent.InvalidateCacheRange(cache_line_start, ICACHE_LINE_SIZE);
+ parent.system.InvalidateCpuInstructionCacheRange(cache_line_start, ICACHE_LINE_SIZE);
break;
}
case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoU:
- parent.ClearInstructionCache();
+ parent.system.InvalidateCpuInstructionCaches();
break;
case Dynarmic::A64::InstructionCacheOperation::InvalidateAllToPoUInnerSharable:
default:
LOG_DEBUG(Core_ARM, "Unprocesseed instruction cache operation: {}", op);
break;
}
+
+ parent.jit->HaltExecution(Dynarmic::HaltReason::CacheInvalidation);
}
void ExceptionRaised(u64 pc, Dynarmic::A64::Exception exception) override {
@@ -116,21 +122,19 @@ public:
return;
case Dynarmic::A64::Exception::Breakpoint:
default:
+ parent.LogBacktrace();
ASSERT_MSG(false, "ExceptionRaised(exception = {}, pc = {:08X}, code = {:08X})",
static_cast<std::size_t>(exception), pc, MemoryReadCode(pc));
}
}
void CallSVC(u32 swi) override {
- parent.svc_called = true;
parent.svc_swi = swi;
- parent.jit->HaltExecution();
+ parent.jit->HaltExecution(svc_call);
}
void AddTicks(u64 ticks) override {
- if (parent.uses_wall_clock) {
- return;
- }
+ ASSERT_MSG(!parent.uses_wall_clock, "This should never happen - dynarmic ticking disabled");
// Divide the number of ticks by the amount of CPU cores. TODO(Subv): This yields only a
// rough approximation of the amount of executed ticks in the system, it may be thrown off
@@ -145,12 +149,8 @@ public:
}
u64 GetTicksRemaining() override {
- if (parent.uses_wall_clock) {
- if (!parent.interrupt_handlers[parent.core_index].IsInterrupted()) {
- return minimum_run_cycles;
- }
- return 0U;
- }
+ ASSERT_MSG(!parent.uses_wall_clock, "This should never happen - dynarmic ticking disabled");
+
return std::max<s64>(parent.system.CoreTiming().GetDowncount(), 0);
}
@@ -206,10 +206,11 @@ std::shared_ptr<Dynarmic::A64::Jit> ARM_Dynarmic_64::MakeJit(Common::PageTable*
// Timing
config.wall_clock_cntpct = uses_wall_clock;
+ config.enable_cycle_counting = !uses_wall_clock;
// Code cache size
- config.code_cache_size = 128_MiB;
- config.far_code_offset = 100_MiB;
+ config.code_cache_size = 512_MiB;
+ config.far_code_offset = 400_MiB;
// Safe optimizations
if (Settings::values.cpu_debug_mode) {
@@ -246,35 +247,41 @@ std::shared_ptr<Dynarmic::A64::Jit> ARM_Dynarmic_64::MakeJit(Common::PageTable*
if (!Settings::values.cpuopt_recompile_exclusives) {
config.recompile_on_exclusive_fastmem_failure = false;
}
- }
+ } else {
+ // Unsafe optimizations
+ if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Unsafe) {
+ config.unsafe_optimizations = true;
+ if (Settings::values.cpuopt_unsafe_unfuse_fma) {
+ config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
+ }
+ if (Settings::values.cpuopt_unsafe_reduce_fp_error) {
+ config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
+ }
+ if (Settings::values.cpuopt_unsafe_inaccurate_nan) {
+ config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
+ }
+ if (Settings::values.cpuopt_unsafe_fastmem_check) {
+ config.fastmem_address_space_bits = 64;
+ }
+ if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
+ config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
+ }
+ }
- // Unsafe optimizations
- if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Unsafe) {
- config.unsafe_optimizations = true;
- if (Settings::values.cpuopt_unsafe_unfuse_fma) {
+ // Curated optimizations
+ if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Auto) {
+ config.unsafe_optimizations = true;
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
- }
- if (Settings::values.cpuopt_unsafe_reduce_fp_error) {
- config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
- }
- if (Settings::values.cpuopt_unsafe_inaccurate_nan) {
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
- }
- if (Settings::values.cpuopt_unsafe_fastmem_check) {
config.fastmem_address_space_bits = 64;
- }
- if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
}
- }
- // Curated optimizations
- if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Auto) {
- config.unsafe_optimizations = true;
- config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
- config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
- config.fastmem_address_space_bits = 64;
- config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
+ // Paranoia mode for debugging optimizations
+ if (Settings::values.cpu_accuracy.GetValue() == Settings::CPUAccuracy::Paranoid) {
+ config.unsafe_optimizations = false;
+ config.optimizations = Dynarmic::no_optimizations;
+ }
}
return std::make_shared<Dynarmic::A64::Jit>(config);
@@ -282,13 +289,11 @@ std::shared_ptr<Dynarmic::A64::Jit> ARM_Dynarmic_64::MakeJit(Common::PageTable*
void ARM_Dynarmic_64::Run() {
while (true) {
- jit->Run();
- if (!svc_called) {
- break;
+ const auto hr = jit->Run();
+ if (Has(hr, svc_call)) {
+ Kernel::Svc::Call(system, svc_swi);
}
- svc_called = false;
- Kernel::Svc::Call(system, svc_swi);
- if (shutdown) {
+ if (Has(hr, break_loop) || !uses_wall_clock) {
break;
}
}
@@ -379,8 +384,11 @@ void ARM_Dynarmic_64::LoadContext(const ThreadContext64& ctx) {
}
void ARM_Dynarmic_64::PrepareReschedule() {
- jit->HaltExecution();
- shutdown = true;
+ jit->HaltExecution(break_loop);
+}
+
+void ARM_Dynarmic_64::SignalInterrupt() {
+ jit->HaltExecution(break_loop);
}
void ARM_Dynarmic_64::ClearInstructionCache() {
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.h b/src/core/arm/dynarmic/arm_dynarmic_64.h
index 0c4e46c64..58bc7fbec 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_64.h
+++ b/src/core/arm/dynarmic/arm_dynarmic_64.h
@@ -51,6 +51,7 @@ public:
void LoadContext(const ThreadContext64& ctx) override;
void PrepareReschedule() override;
+ void SignalInterrupt() override;
void ClearExclusiveState() override;
void ClearInstructionCache() override;
@@ -77,9 +78,6 @@ private:
// SVC callback
u32 svc_swi{};
- bool svc_called{};
-
- bool shutdown{};
};
} // namespace Core
diff --git a/src/core/arm/dynarmic/arm_exclusive_monitor.h b/src/core/arm/dynarmic/arm_exclusive_monitor.h
index 5a15b43ef..b82c77f76 100644
--- a/src/core/arm/dynarmic/arm_exclusive_monitor.h
+++ b/src/core/arm/dynarmic/arm_exclusive_monitor.h
@@ -4,8 +4,6 @@
#pragma once
-#include <unordered_map>
-
#include <dynarmic/interface/exclusive_monitor.h>
#include "common/common_types.h"
diff --git a/src/core/arm/symbols.cpp b/src/core/arm/symbols.cpp
new file mode 100644
index 000000000..26c44f0c7
--- /dev/null
+++ b/src/core/arm/symbols.cpp
@@ -0,0 +1,190 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "common/bit_field.h"
+#include "common/common_funcs.h"
+#include "core/arm/symbols.h"
+#include "core/core.h"
+#include "core/memory.h"
+
+namespace Core {
+namespace {
+
+constexpr u64 ELF_DYNAMIC_TAG_NULL = 0;
+constexpr u64 ELF_DYNAMIC_TAG_STRTAB = 5;
+constexpr u64 ELF_DYNAMIC_TAG_SYMTAB = 6;
+constexpr u64 ELF_DYNAMIC_TAG_SYMENT = 11;
+
+enum class ELFSymbolType : u8 {
+ None = 0,
+ Object = 1,
+ Function = 2,
+ Section = 3,
+ File = 4,
+ Common = 5,
+ TLS = 6,
+};
+
+enum class ELFSymbolBinding : u8 {
+ Local = 0,
+ Global = 1,
+ Weak = 2,
+};
+
+enum class ELFSymbolVisibility : u8 {
+ Default = 0,
+ Internal = 1,
+ Hidden = 2,
+ Protected = 3,
+};
+
+struct ELF64Symbol {
+ u32 name_index;
+ union {
+ u8 info;
+
+ BitField<0, 4, ELFSymbolType> type;
+ BitField<4, 4, ELFSymbolBinding> binding;
+ };
+ ELFSymbolVisibility visibility;
+ u16 sh_index;
+ u64 value;
+ u64 size;
+};
+static_assert(sizeof(ELF64Symbol) == 0x18, "ELF64Symbol has incorrect size.");
+
+struct ELF32Symbol {
+ u32 name_index;
+ u32 value;
+ u32 size;
+ union {
+ u8 info;
+
+ BitField<0, 4, ELFSymbolType> type;
+ BitField<4, 4, ELFSymbolBinding> binding;
+ };
+ ELFSymbolVisibility visibility;
+ u16 sh_index;
+};
+static_assert(sizeof(ELF32Symbol) == 0x10, "ELF32Symbol has incorrect size.");
+
+} // Anonymous namespace
+
+namespace Symbols {
+
+template <typename Word, typename ELFSymbol, typename ByteReader>
+static Symbols GetSymbols(ByteReader ReadBytes) {
+ const auto Read8{[&](u64 index) {
+ u8 ret;
+ ReadBytes(&ret, index, sizeof(u8));
+ return ret;
+ }};
+
+ const auto Read32{[&](u64 index) {
+ u32 ret;
+ ReadBytes(&ret, index, sizeof(u32));
+ return ret;
+ }};
+
+ const auto ReadWord{[&](u64 index) {
+ Word ret;
+ ReadBytes(&ret, index, sizeof(Word));
+ return ret;
+ }};
+
+ const u32 mod_offset = Read32(4);
+
+ if (Read32(mod_offset) != Common::MakeMagic('M', 'O', 'D', '0')) {
+ return {};
+ }
+
+ VAddr string_table_offset{};
+ VAddr symbol_table_offset{};
+ u64 symbol_entry_size{};
+
+ const auto dynamic_offset = Read32(mod_offset + 0x4) + mod_offset;
+
+ VAddr dynamic_index = dynamic_offset;
+ while (true) {
+ const Word tag = ReadWord(dynamic_index);
+ const Word value = ReadWord(dynamic_index + sizeof(Word));
+ dynamic_index += 2 * sizeof(Word);
+
+ if (tag == ELF_DYNAMIC_TAG_NULL) {
+ break;
+ }
+
+ if (tag == ELF_DYNAMIC_TAG_STRTAB) {
+ string_table_offset = value;
+ } else if (tag == ELF_DYNAMIC_TAG_SYMTAB) {
+ symbol_table_offset = value;
+ } else if (tag == ELF_DYNAMIC_TAG_SYMENT) {
+ symbol_entry_size = value;
+ }
+ }
+
+ if (string_table_offset == 0 || symbol_table_offset == 0 || symbol_entry_size == 0) {
+ return {};
+ }
+
+ Symbols out;
+
+ VAddr symbol_index = symbol_table_offset;
+ while (symbol_index < string_table_offset) {
+ ELFSymbol symbol{};
+ ReadBytes(&symbol, symbol_index, sizeof(ELFSymbol));
+
+ VAddr string_offset = string_table_offset + symbol.name_index;
+ std::string name;
+ for (u8 c = Read8(string_offset); c != 0; c = Read8(++string_offset)) {
+ name += static_cast<char>(c);
+ }
+
+ symbol_index += symbol_entry_size;
+ out[name] = std::make_pair(symbol.value, symbol.size);
+ }
+
+ return out;
+}
+
+Symbols GetSymbols(VAddr base, Core::Memory::Memory& memory, bool is_64) {
+ const auto ReadBytes{
+ [&](void* ptr, size_t offset, size_t size) { memory.ReadBlock(base + offset, ptr, size); }};
+
+ if (is_64) {
+ return GetSymbols<u64, ELF64Symbol>(ReadBytes);
+ } else {
+ return GetSymbols<u32, ELF32Symbol>(ReadBytes);
+ }
+}
+
+Symbols GetSymbols(std::span<const u8> data, bool is_64) {
+ const auto ReadBytes{[&](void* ptr, size_t offset, size_t size) {
+ std::memcpy(ptr, data.data() + offset, size);
+ }};
+
+ if (is_64) {
+ return GetSymbols<u64, ELF64Symbol>(ReadBytes);
+ } else {
+ return GetSymbols<u32, ELF32Symbol>(ReadBytes);
+ }
+}
+
+std::optional<std::string> GetSymbolName(const Symbols& symbols, VAddr addr) {
+ const auto iter = std::find_if(symbols.cbegin(), symbols.cend(), [addr](const auto& pair) {
+ const auto& [name, sym_info] = pair;
+ const auto& [start_address, size] = sym_info;
+ const auto end_address = start_address + size;
+ return addr >= start_address && addr < end_address;
+ });
+
+ if (iter == symbols.cend()) {
+ return std::nullopt;
+ }
+
+ return iter->first;
+}
+
+} // namespace Symbols
+} // namespace Core
diff --git a/src/core/arm/symbols.h b/src/core/arm/symbols.h
new file mode 100644
index 000000000..99e6a9f8e
--- /dev/null
+++ b/src/core/arm/symbols.h
@@ -0,0 +1,27 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <map>
+#include <optional>
+#include <span>
+#include <string>
+#include <utility>
+
+#include "common/common_types.h"
+
+namespace Core::Memory {
+class Memory;
+} // namespace Core::Memory
+
+namespace Core::Symbols {
+
+using Symbols = std::map<std::string, std::pair<VAddr, std::size_t>, std::less<>>;
+
+Symbols GetSymbols(VAddr base, Core::Memory::Memory& memory, bool is_64 = true);
+Symbols GetSymbols(std::span<const u8> data, bool is_64 = true);
+std::optional<std::string> GetSymbolName(const Symbols& symbols, VAddr addr);
+
+} // namespace Core::Symbols
diff --git a/src/core/core.cpp b/src/core/core.cpp
index c60a784c3..b5e2bcae2 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -38,7 +38,6 @@
#include "core/hle/service/apm/apm_controller.h"
#include "core/hle/service/filesystem/filesystem.h"
#include "core/hle/service/glue/glue_manager.h"
-#include "core/hle/service/hid/hid.h"
#include "core/hle/service/service.h"
#include "core/hle/service/sm/sm.h"
#include "core/hle/service/time/time_manager.h"
diff --git a/src/core/file_sys/directory.h b/src/core/file_sys/directory.h
index 21c7aefc8..9a3b62117 100644
--- a/src/core/file_sys/directory.h
+++ b/src/core/file_sys/directory.h
@@ -5,7 +5,6 @@
#pragma once
#include <cstddef>
-#include <iterator>
#include "common/common_funcs.h"
#include "common/common_types.h"
diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp
index f19ac4607..73e724f3d 100644
--- a/src/core/file_sys/patch_manager.cpp
+++ b/src/core/file_sys/patch_manager.cpp
@@ -10,7 +10,10 @@
#include "common/hex_util.h"
#include "common/logging/log.h"
#include "common/settings.h"
+#ifndef _WIN32
#include "common/string_util.h"
+#endif
+
#include "core/core.h"
#include "core/file_sys/common_funcs.h"
#include "core/file_sys/content_archive.h"
@@ -145,29 +148,33 @@ VirtualDir PatchManager::PatchExeFS(VirtualDir exefs) const {
// LayeredExeFS
const auto load_dir = fs_controller.GetModificationLoadRoot(title_id);
+ const auto sdmc_load_dir = fs_controller.GetSDMCModificationLoadRoot(title_id);
+
+ std::vector<VirtualDir> patch_dirs = {sdmc_load_dir};
if (load_dir != nullptr && load_dir->GetSize() > 0) {
- auto patch_dirs = load_dir->GetSubdirectories();
- std::sort(
- patch_dirs.begin(), patch_dirs.end(),
- [](const VirtualDir& l, const VirtualDir& r) { return l->GetName() < r->GetName(); });
-
- std::vector<VirtualDir> layers;
- layers.reserve(patch_dirs.size() + 1);
- for (const auto& subdir : patch_dirs) {
- if (std::find(disabled.begin(), disabled.end(), subdir->GetName()) != disabled.end())
- continue;
+ const auto load_patch_dirs = load_dir->GetSubdirectories();
+ patch_dirs.insert(patch_dirs.end(), load_patch_dirs.begin(), load_patch_dirs.end());
+ }
- auto exefs_dir = FindSubdirectoryCaseless(subdir, "exefs");
- if (exefs_dir != nullptr)
- layers.push_back(std::move(exefs_dir));
- }
- layers.push_back(exefs);
+ std::sort(patch_dirs.begin(), patch_dirs.end(),
+ [](const VirtualDir& l, const VirtualDir& r) { return l->GetName() < r->GetName(); });
- auto layered = LayeredVfsDirectory::MakeLayeredDirectory(std::move(layers));
- if (layered != nullptr) {
- LOG_INFO(Loader, " ExeFS: LayeredExeFS patches applied successfully");
- exefs = std::move(layered);
- }
+ std::vector<VirtualDir> layers;
+ layers.reserve(patch_dirs.size() + 1);
+ for (const auto& subdir : patch_dirs) {
+ if (std::find(disabled.begin(), disabled.end(), subdir->GetName()) != disabled.end())
+ continue;
+
+ auto exefs_dir = FindSubdirectoryCaseless(subdir, "exefs");
+ if (exefs_dir != nullptr)
+ layers.push_back(std::move(exefs_dir));
+ }
+ layers.push_back(exefs);
+
+ auto layered = LayeredVfsDirectory::MakeLayeredDirectory(std::move(layers));
+ if (layered != nullptr) {
+ LOG_INFO(Loader, " ExeFS: LayeredExeFS patches applied successfully");
+ exefs = std::move(layered);
}
if (Settings::values.dump_exefs) {
@@ -533,11 +540,20 @@ PatchManager::PatchVersionNames PatchManager::GetPatchVersionNames(VirtualFile u
// SDMC mod directory (RomFS LayeredFS)
const auto sdmc_mod_dir = fs_controller.GetSDMCModificationLoadRoot(title_id);
- if (sdmc_mod_dir != nullptr && sdmc_mod_dir->GetSize() > 0 &&
- IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "romfs"))) {
- const auto mod_disabled =
- std::find(disabled.begin(), disabled.end(), "SDMC") != disabled.end();
- out.insert_or_assign(mod_disabled ? "[D] SDMC" : "SDMC", "LayeredFS");
+ if (sdmc_mod_dir != nullptr && sdmc_mod_dir->GetSize() > 0) {
+ std::string types;
+ if (IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "exefs"))) {
+ AppendCommaIfNotEmpty(types, "LayeredExeFS");
+ }
+ if (IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "romfs"))) {
+ AppendCommaIfNotEmpty(types, "LayeredFS");
+ }
+
+ if (!types.empty()) {
+ const auto mod_disabled =
+ std::find(disabled.begin(), disabled.end(), "SDMC") != disabled.end();
+ out.insert_or_assign(mod_disabled ? "[D] SDMC" : "SDMC", types);
+ }
}
// DLC
diff --git a/src/core/file_sys/program_metadata.h b/src/core/file_sys/program_metadata.h
index 1eee916be..32435e123 100644
--- a/src/core/file_sys/program_metadata.h
+++ b/src/core/file_sys/program_metadata.h
@@ -6,7 +6,9 @@
#include <array>
#include <vector>
+
#include "common/bit_field.h"
+#include "common/common_funcs.h"
#include "common/common_types.h"
#include "common/swap.h"
#include "core/file_sys/vfs_types.h"
diff --git a/src/core/file_sys/registered_cache.cpp b/src/core/file_sys/registered_cache.cpp
index 7a646b5f1..4ada4a69b 100644
--- a/src/core/file_sys/registered_cache.cpp
+++ b/src/core/file_sys/registered_cache.cpp
@@ -387,15 +387,17 @@ std::vector<NcaID> RegisteredCache::AccumulateFiles() const {
continue;
for (const auto& nca_dir : d2_dir->GetSubdirectories()) {
- if (!FollowsNcaIdFormat(nca_dir->GetName()))
+ if (nca_dir == nullptr || !FollowsNcaIdFormat(nca_dir->GetName())) {
continue;
+ }
ids.push_back(Common::HexStringToArray<0x10, true>(nca_dir->GetName().substr(0, 0x20)));
}
for (const auto& nca_file : d2_dir->GetFiles()) {
- if (!FollowsNcaIdFormat(nca_file->GetName()))
+ if (nca_file == nullptr || !FollowsNcaIdFormat(nca_file->GetName())) {
continue;
+ }
ids.push_back(
Common::HexStringToArray<0x10, true>(nca_file->GetName().substr(0, 0x20)));
diff --git a/src/core/frontend/applets/mii_edit.cpp b/src/core/frontend/applets/mii_edit.cpp
new file mode 100644
index 000000000..fadb5fb15
--- /dev/null
+++ b/src/core/frontend/applets/mii_edit.cpp
@@ -0,0 +1,18 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "common/logging/log.h"
+#include "core/frontend/applets/mii_edit.h"
+
+namespace Core::Frontend {
+
+MiiEditApplet::~MiiEditApplet() = default;
+
+void DefaultMiiEditApplet::ShowMiiEdit(const std::function<void()>& callback) const {
+ LOG_WARNING(Service_AM, "(STUBBED) called");
+
+ callback();
+}
+
+} // namespace Core::Frontend
diff --git a/src/core/frontend/applets/mii_edit.h b/src/core/frontend/applets/mii_edit.h
new file mode 100644
index 000000000..cca0e931d
--- /dev/null
+++ b/src/core/frontend/applets/mii_edit.h
@@ -0,0 +1,23 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <functional>
+
+namespace Core::Frontend {
+
+class MiiEditApplet {
+public:
+ virtual ~MiiEditApplet();
+
+ virtual void ShowMiiEdit(const std::function<void()>& callback) const = 0;
+};
+
+class DefaultMiiEditApplet final : public MiiEditApplet {
+public:
+ void ShowMiiEdit(const std::function<void()>& callback) const override;
+};
+
+} // namespace Core::Frontend
diff --git a/src/core/hid/emulated_console.cpp b/src/core/hid/emulated_console.cpp
index eef0ff493..de565048b 100644
--- a/src/core/hid/emulated_console.cpp
+++ b/src/core/hid/emulated_console.cpp
@@ -132,7 +132,7 @@ void EmulatedConsole::SetMotionParam(Common::ParamPackage param) {
}
void EmulatedConsole::SetMotion(const Common::Input::CallbackStatus& callback) {
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
auto& raw_status = console.motion_values.raw_status;
auto& emulated = console.motion_values.emulated;
@@ -151,6 +151,7 @@ void EmulatedConsole::SetMotion(const Common::Input::CallbackStatus& callback) {
emulated.UpdateOrientation(raw_status.delta_timestamp);
if (is_configuring) {
+ lock.unlock();
TriggerOnChange(ConsoleTriggerType::Motion);
return;
}
@@ -166,6 +167,7 @@ void EmulatedConsole::SetMotion(const Common::Input::CallbackStatus& callback) {
// Find what is this value
motion.verticalization_error = 0.0f;
+ lock.unlock();
TriggerOnChange(ConsoleTriggerType::Motion);
}
@@ -173,11 +175,12 @@ void EmulatedConsole::SetTouch(const Common::Input::CallbackStatus& callback, st
if (index >= console.touch_values.size()) {
return;
}
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
console.touch_values[index] = TransformToTouch(callback);
if (is_configuring) {
+ lock.unlock();
TriggerOnChange(ConsoleTriggerType::Touch);
return;
}
@@ -189,26 +192,32 @@ void EmulatedConsole::SetTouch(const Common::Input::CallbackStatus& callback, st
.pressed = console.touch_values[index].pressed.value,
};
+ lock.unlock();
TriggerOnChange(ConsoleTriggerType::Touch);
}
ConsoleMotionValues EmulatedConsole::GetMotionValues() const {
+ std::scoped_lock lock{mutex};
return console.motion_values;
}
TouchValues EmulatedConsole::GetTouchValues() const {
+ std::scoped_lock lock{mutex};
return console.touch_values;
}
ConsoleMotion EmulatedConsole::GetMotion() const {
+ std::scoped_lock lock{mutex};
return console.motion_state;
}
TouchFingerState EmulatedConsole::GetTouch() const {
+ std::scoped_lock lock{mutex};
return console.touch_state;
}
void EmulatedConsole::TriggerOnChange(ConsoleTriggerType type) {
+ std::scoped_lock lock{callback_mutex};
for (const auto& poller_pair : callback_list) {
const ConsoleUpdateCallback& poller = poller_pair.second;
if (poller.on_change) {
@@ -218,13 +227,13 @@ void EmulatedConsole::TriggerOnChange(ConsoleTriggerType type) {
}
int EmulatedConsole::SetCallback(ConsoleUpdateCallback update_callback) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{callback_mutex};
callback_list.insert_or_assign(last_callback_key, update_callback);
return last_callback_key++;
}
void EmulatedConsole::DeleteCallback(int key) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{callback_mutex};
const auto& iterator = callback_list.find(key);
if (iterator == callback_list.end()) {
LOG_ERROR(Input, "Tried to delete non-existent callback {}", key);
diff --git a/src/core/hid/emulated_console.h b/src/core/hid/emulated_console.h
index 5eb170823..53677bdc5 100644
--- a/src/core/hid/emulated_console.h
+++ b/src/core/hid/emulated_console.h
@@ -183,6 +183,7 @@ private:
TouchDevices touch_devices;
mutable std::mutex mutex;
+ mutable std::mutex callback_mutex;
std::unordered_map<int, ConsoleUpdateCallback> callback_list;
int last_callback_key = 0;
diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp
index 7e05666d6..c3f21066c 100644
--- a/src/core/hid/emulated_controller.cpp
+++ b/src/core/hid/emulated_controller.cpp
@@ -353,14 +353,17 @@ void EmulatedController::DisableConfiguration() {
}
void EmulatedController::EnableSystemButtons() {
+ std::scoped_lock lock{mutex};
system_buttons_enabled = true;
}
void EmulatedController::DisableSystemButtons() {
+ std::scoped_lock lock{mutex};
system_buttons_enabled = false;
}
void EmulatedController::ResetSystemButtons() {
+ std::scoped_lock lock{mutex};
controller.home_button_state.home.Assign(false);
controller.capture_button_state.capture.Assign(false);
}
@@ -494,139 +497,141 @@ void EmulatedController::SetButton(const Common::Input::CallbackStatus& callback
if (index >= controller.button_values.size()) {
return;
}
- {
- std::lock_guard lock{mutex};
- bool value_changed = false;
- const auto new_status = TransformToButton(callback);
- auto& current_status = controller.button_values[index];
+ std::unique_lock lock{mutex};
+ bool value_changed = false;
+ const auto new_status = TransformToButton(callback);
+ auto& current_status = controller.button_values[index];
- // Only read button values that have the same uuid or are pressed once
- if (current_status.uuid != uuid) {
- if (!new_status.value) {
- return;
- }
+ // Only read button values that have the same uuid or are pressed once
+ if (current_status.uuid != uuid) {
+ if (!new_status.value) {
+ return;
}
+ }
- current_status.toggle = new_status.toggle;
- current_status.uuid = uuid;
-
- // Update button status with current
- if (!current_status.toggle) {
- current_status.locked = false;
- if (current_status.value != new_status.value) {
- current_status.value = new_status.value;
- value_changed = true;
- }
- } else {
- // Toggle button and lock status
- if (new_status.value && !current_status.locked) {
- current_status.locked = true;
- current_status.value = !current_status.value;
- value_changed = true;
- }
+ current_status.toggle = new_status.toggle;
+ current_status.uuid = uuid;
- // Unlock button ready for next press
- if (!new_status.value && current_status.locked) {
- current_status.locked = false;
- }
+ // Update button status with current
+ if (!current_status.toggle) {
+ current_status.locked = false;
+ if (current_status.value != new_status.value) {
+ current_status.value = new_status.value;
+ value_changed = true;
}
-
- if (!value_changed) {
- return;
+ } else {
+ // Toggle button and lock status
+ if (new_status.value && !current_status.locked) {
+ current_status.locked = true;
+ current_status.value = !current_status.value;
+ value_changed = true;
}
- if (is_configuring) {
- controller.npad_button_state.raw = NpadButton::None;
- controller.debug_pad_button_state.raw = 0;
- TriggerOnChange(ControllerTriggerType::Button, false);
- return;
+ // Unlock button ready for next press
+ if (!new_status.value && current_status.locked) {
+ current_status.locked = false;
}
+ }
- switch (index) {
- case Settings::NativeButton::A:
- controller.npad_button_state.a.Assign(current_status.value);
- controller.debug_pad_button_state.a.Assign(current_status.value);
- break;
- case Settings::NativeButton::B:
- controller.npad_button_state.b.Assign(current_status.value);
- controller.debug_pad_button_state.b.Assign(current_status.value);
- break;
- case Settings::NativeButton::X:
- controller.npad_button_state.x.Assign(current_status.value);
- controller.debug_pad_button_state.x.Assign(current_status.value);
- break;
- case Settings::NativeButton::Y:
- controller.npad_button_state.y.Assign(current_status.value);
- controller.debug_pad_button_state.y.Assign(current_status.value);
- break;
- case Settings::NativeButton::LStick:
- controller.npad_button_state.stick_l.Assign(current_status.value);
- break;
- case Settings::NativeButton::RStick:
- controller.npad_button_state.stick_r.Assign(current_status.value);
- break;
- case Settings::NativeButton::L:
- controller.npad_button_state.l.Assign(current_status.value);
- controller.debug_pad_button_state.l.Assign(current_status.value);
- break;
- case Settings::NativeButton::R:
- controller.npad_button_state.r.Assign(current_status.value);
- controller.debug_pad_button_state.r.Assign(current_status.value);
- break;
- case Settings::NativeButton::ZL:
- controller.npad_button_state.zl.Assign(current_status.value);
- controller.debug_pad_button_state.zl.Assign(current_status.value);
- break;
- case Settings::NativeButton::ZR:
- controller.npad_button_state.zr.Assign(current_status.value);
- controller.debug_pad_button_state.zr.Assign(current_status.value);
- break;
- case Settings::NativeButton::Plus:
- controller.npad_button_state.plus.Assign(current_status.value);
- controller.debug_pad_button_state.plus.Assign(current_status.value);
- break;
- case Settings::NativeButton::Minus:
- controller.npad_button_state.minus.Assign(current_status.value);
- controller.debug_pad_button_state.minus.Assign(current_status.value);
- break;
- case Settings::NativeButton::DLeft:
- controller.npad_button_state.left.Assign(current_status.value);
- controller.debug_pad_button_state.d_left.Assign(current_status.value);
- break;
- case Settings::NativeButton::DUp:
- controller.npad_button_state.up.Assign(current_status.value);
- controller.debug_pad_button_state.d_up.Assign(current_status.value);
- break;
- case Settings::NativeButton::DRight:
- controller.npad_button_state.right.Assign(current_status.value);
- controller.debug_pad_button_state.d_right.Assign(current_status.value);
- break;
- case Settings::NativeButton::DDown:
- controller.npad_button_state.down.Assign(current_status.value);
- controller.debug_pad_button_state.d_down.Assign(current_status.value);
- break;
- case Settings::NativeButton::SL:
- controller.npad_button_state.left_sl.Assign(current_status.value);
- controller.npad_button_state.right_sl.Assign(current_status.value);
- break;
- case Settings::NativeButton::SR:
- controller.npad_button_state.left_sr.Assign(current_status.value);
- controller.npad_button_state.right_sr.Assign(current_status.value);
- break;
- case Settings::NativeButton::Home:
- if (!system_buttons_enabled) {
- break;
- }
- controller.home_button_state.home.Assign(current_status.value);
+ if (!value_changed) {
+ return;
+ }
+
+ if (is_configuring) {
+ controller.npad_button_state.raw = NpadButton::None;
+ controller.debug_pad_button_state.raw = 0;
+ lock.unlock();
+ TriggerOnChange(ControllerTriggerType::Button, false);
+ return;
+ }
+
+ switch (index) {
+ case Settings::NativeButton::A:
+ controller.npad_button_state.a.Assign(current_status.value);
+ controller.debug_pad_button_state.a.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::B:
+ controller.npad_button_state.b.Assign(current_status.value);
+ controller.debug_pad_button_state.b.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::X:
+ controller.npad_button_state.x.Assign(current_status.value);
+ controller.debug_pad_button_state.x.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::Y:
+ controller.npad_button_state.y.Assign(current_status.value);
+ controller.debug_pad_button_state.y.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::LStick:
+ controller.npad_button_state.stick_l.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::RStick:
+ controller.npad_button_state.stick_r.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::L:
+ controller.npad_button_state.l.Assign(current_status.value);
+ controller.debug_pad_button_state.l.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::R:
+ controller.npad_button_state.r.Assign(current_status.value);
+ controller.debug_pad_button_state.r.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::ZL:
+ controller.npad_button_state.zl.Assign(current_status.value);
+ controller.debug_pad_button_state.zl.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::ZR:
+ controller.npad_button_state.zr.Assign(current_status.value);
+ controller.debug_pad_button_state.zr.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::Plus:
+ controller.npad_button_state.plus.Assign(current_status.value);
+ controller.debug_pad_button_state.plus.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::Minus:
+ controller.npad_button_state.minus.Assign(current_status.value);
+ controller.debug_pad_button_state.minus.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::DLeft:
+ controller.npad_button_state.left.Assign(current_status.value);
+ controller.debug_pad_button_state.d_left.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::DUp:
+ controller.npad_button_state.up.Assign(current_status.value);
+ controller.debug_pad_button_state.d_up.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::DRight:
+ controller.npad_button_state.right.Assign(current_status.value);
+ controller.debug_pad_button_state.d_right.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::DDown:
+ controller.npad_button_state.down.Assign(current_status.value);
+ controller.debug_pad_button_state.d_down.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::SL:
+ controller.npad_button_state.left_sl.Assign(current_status.value);
+ controller.npad_button_state.right_sl.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::SR:
+ controller.npad_button_state.left_sr.Assign(current_status.value);
+ controller.npad_button_state.right_sr.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::Home:
+ if (!system_buttons_enabled) {
break;
- case Settings::NativeButton::Screenshot:
- if (!system_buttons_enabled) {
- break;
- }
- controller.capture_button_state.capture.Assign(current_status.value);
+ }
+ controller.home_button_state.home.Assign(current_status.value);
+ break;
+ case Settings::NativeButton::Screenshot:
+ if (!system_buttons_enabled) {
break;
}
+ controller.capture_button_state.capture.Assign(current_status.value);
+ break;
}
+
+ lock.unlock();
+
if (!is_connected) {
if (npad_id_type == NpadIdType::Player1 && npad_type != NpadStyleIndex::Handheld) {
Connect();
@@ -643,7 +648,7 @@ void EmulatedController::SetStick(const Common::Input::CallbackStatus& callback,
if (index >= controller.stick_values.size()) {
return;
}
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
const auto stick_value = TransformToStick(callback);
// Only read stick values that have the same uuid or are over the threshold to avoid flapping
@@ -659,6 +664,7 @@ void EmulatedController::SetStick(const Common::Input::CallbackStatus& callback,
if (is_configuring) {
controller.analog_stick_state.left = {};
controller.analog_stick_state.right = {};
+ lock.unlock();
TriggerOnChange(ControllerTriggerType::Stick, false);
return;
}
@@ -685,6 +691,7 @@ void EmulatedController::SetStick(const Common::Input::CallbackStatus& callback,
break;
}
+ lock.unlock();
TriggerOnChange(ControllerTriggerType::Stick, true);
}
@@ -693,7 +700,7 @@ void EmulatedController::SetTrigger(const Common::Input::CallbackStatus& callbac
if (index >= controller.trigger_values.size()) {
return;
}
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
const auto trigger_value = TransformToTrigger(callback);
// Only read trigger values that have the same uuid or are pressed once
@@ -709,6 +716,7 @@ void EmulatedController::SetTrigger(const Common::Input::CallbackStatus& callbac
if (is_configuring) {
controller.gc_trigger_state.left = 0;
controller.gc_trigger_state.right = 0;
+ lock.unlock();
TriggerOnChange(ControllerTriggerType::Trigger, false);
return;
}
@@ -727,6 +735,7 @@ void EmulatedController::SetTrigger(const Common::Input::CallbackStatus& callbac
break;
}
+ lock.unlock();
TriggerOnChange(ControllerTriggerType::Trigger, true);
}
@@ -735,7 +744,7 @@ void EmulatedController::SetMotion(const Common::Input::CallbackStatus& callback
if (index >= controller.motion_values.size()) {
return;
}
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
auto& raw_status = controller.motion_values[index].raw_status;
auto& emulated = controller.motion_values[index].emulated;
@@ -756,6 +765,7 @@ void EmulatedController::SetMotion(const Common::Input::CallbackStatus& callback
force_update_motion = raw_status.force_update;
if (is_configuring) {
+ lock.unlock();
TriggerOnChange(ControllerTriggerType::Motion, false);
return;
}
@@ -767,6 +777,7 @@ void EmulatedController::SetMotion(const Common::Input::CallbackStatus& callback
motion.orientation = emulated.GetOrientation();
motion.is_at_rest = !emulated.IsMoving(motion_sensitivity);
+ lock.unlock();
TriggerOnChange(ControllerTriggerType::Motion, true);
}
@@ -775,10 +786,11 @@ void EmulatedController::SetBattery(const Common::Input::CallbackStatus& callbac
if (index >= controller.battery_values.size()) {
return;
}
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
controller.battery_values[index] = TransformToBattery(callback);
if (is_configuring) {
+ lock.unlock();
TriggerOnChange(ControllerTriggerType::Battery, false);
return;
}
@@ -835,6 +847,8 @@ void EmulatedController::SetBattery(const Common::Input::CallbackStatus& callbac
};
break;
}
+
+ lock.unlock();
TriggerOnChange(ControllerTriggerType::Battery, true);
}
@@ -932,6 +946,7 @@ void EmulatedController::SetSupportedNpadStyleTag(NpadStyleTag supported_styles)
}
bool EmulatedController::IsControllerFullkey(bool use_temporary_value) const {
+ std::scoped_lock lock{mutex};
const auto type = is_configuring && use_temporary_value ? tmp_npad_type : npad_type;
switch (type) {
case NpadStyleIndex::ProController:
@@ -947,6 +962,7 @@ bool EmulatedController::IsControllerFullkey(bool use_temporary_value) const {
}
bool EmulatedController::IsControllerSupported(bool use_temporary_value) const {
+ std::scoped_lock lock{mutex};
const auto type = is_configuring && use_temporary_value ? tmp_npad_type : npad_type;
switch (type) {
case NpadStyleIndex::ProController:
@@ -982,40 +998,44 @@ void EmulatedController::Connect(bool use_temporary_value) {
LOG_ERROR(Service_HID, "Controller type {} is not supported", type);
return;
}
- {
- std::lock_guard lock{mutex};
- if (is_configuring) {
- tmp_is_connected = true;
- TriggerOnChange(ControllerTriggerType::Connected, false);
- return;
- }
- if (is_connected) {
- return;
- }
- is_connected = true;
+ std::unique_lock lock{mutex};
+ if (is_configuring) {
+ tmp_is_connected = true;
+ lock.unlock();
+ TriggerOnChange(ControllerTriggerType::Connected, false);
+ return;
+ }
+
+ if (is_connected) {
+ return;
}
+ is_connected = true;
+
+ lock.unlock();
TriggerOnChange(ControllerTriggerType::Connected, true);
}
void EmulatedController::Disconnect() {
- {
- std::lock_guard lock{mutex};
- if (is_configuring) {
- tmp_is_connected = false;
- TriggerOnChange(ControllerTriggerType::Disconnected, false);
- return;
- }
+ std::unique_lock lock{mutex};
+ if (is_configuring) {
+ tmp_is_connected = false;
+ lock.unlock();
+ TriggerOnChange(ControllerTriggerType::Disconnected, false);
+ return;
+ }
- if (!is_connected) {
- return;
- }
- is_connected = false;
+ if (!is_connected) {
+ return;
}
+ is_connected = false;
+
+ lock.unlock();
TriggerOnChange(ControllerTriggerType::Disconnected, true);
}
bool EmulatedController::IsConnected(bool get_temporary_value) const {
+ std::scoped_lock lock{mutex};
if (get_temporary_value && is_configuring) {
return tmp_is_connected;
}
@@ -1029,10 +1049,12 @@ bool EmulatedController::IsVibrationEnabled() const {
}
NpadIdType EmulatedController::GetNpadIdType() const {
+ std::scoped_lock lock{mutex};
return npad_id_type;
}
NpadStyleIndex EmulatedController::GetNpadStyleIndex(bool get_temporary_value) const {
+ std::scoped_lock lock{mutex};
if (get_temporary_value && is_configuring) {
return tmp_npad_type;
}
@@ -1040,27 +1062,28 @@ NpadStyleIndex EmulatedController::GetNpadStyleIndex(bool get_temporary_value) c
}
void EmulatedController::SetNpadStyleIndex(NpadStyleIndex npad_type_) {
- {
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
- if (is_configuring) {
- if (tmp_npad_type == npad_type_) {
- return;
- }
- tmp_npad_type = npad_type_;
- TriggerOnChange(ControllerTriggerType::Type, false);
+ if (is_configuring) {
+ if (tmp_npad_type == npad_type_) {
return;
}
+ tmp_npad_type = npad_type_;
+ lock.unlock();
+ TriggerOnChange(ControllerTriggerType::Type, false);
+ return;
+ }
- if (npad_type == npad_type_) {
- return;
- }
- if (is_connected) {
- LOG_WARNING(Service_HID, "Controller {} type changed while it's connected",
- NpadIdTypeToIndex(npad_id_type));
- }
- npad_type = npad_type_;
+ if (npad_type == npad_type_) {
+ return;
+ }
+ if (is_connected) {
+ LOG_WARNING(Service_HID, "Controller {} type changed while it's connected",
+ NpadIdTypeToIndex(npad_id_type));
}
+ npad_type = npad_type_;
+
+ lock.unlock();
TriggerOnChange(ControllerTriggerType::Type, true);
}
@@ -1088,30 +1111,37 @@ LedPattern EmulatedController::GetLedPattern() const {
}
ButtonValues EmulatedController::GetButtonsValues() const {
+ std::scoped_lock lock{mutex};
return controller.button_values;
}
SticksValues EmulatedController::GetSticksValues() const {
+ std::scoped_lock lock{mutex};
return controller.stick_values;
}
TriggerValues EmulatedController::GetTriggersValues() const {
+ std::scoped_lock lock{mutex};
return controller.trigger_values;
}
ControllerMotionValues EmulatedController::GetMotionValues() const {
+ std::scoped_lock lock{mutex};
return controller.motion_values;
}
ColorValues EmulatedController::GetColorsValues() const {
+ std::scoped_lock lock{mutex};
return controller.color_values;
}
BatteryValues EmulatedController::GetBatteryValues() const {
+ std::scoped_lock lock{mutex};
return controller.battery_values;
}
HomeButtonState EmulatedController::GetHomeButtons() const {
+ std::scoped_lock lock{mutex};
if (is_configuring) {
return {};
}
@@ -1119,6 +1149,7 @@ HomeButtonState EmulatedController::GetHomeButtons() const {
}
CaptureButtonState EmulatedController::GetCaptureButtons() const {
+ std::scoped_lock lock{mutex};
if (is_configuring) {
return {};
}
@@ -1126,6 +1157,7 @@ CaptureButtonState EmulatedController::GetCaptureButtons() const {
}
NpadButtonState EmulatedController::GetNpadButtons() const {
+ std::scoped_lock lock{mutex};
if (is_configuring) {
return {};
}
@@ -1133,6 +1165,7 @@ NpadButtonState EmulatedController::GetNpadButtons() const {
}
DebugPadButton EmulatedController::GetDebugPadButtons() const {
+ std::scoped_lock lock{mutex};
if (is_configuring) {
return {};
}
@@ -1140,20 +1173,27 @@ DebugPadButton EmulatedController::GetDebugPadButtons() const {
}
AnalogSticks EmulatedController::GetSticks() const {
+ std::unique_lock lock{mutex};
+
if (is_configuring) {
return {};
}
+
// Some drivers like stick from buttons need constant refreshing
for (auto& device : stick_devices) {
if (!device) {
continue;
}
+ lock.unlock();
device->SoftUpdate();
+ lock.lock();
}
+
return controller.analog_stick_state;
}
NpadGcTriggerState EmulatedController::GetTriggers() const {
+ std::scoped_lock lock{mutex};
if (is_configuring) {
return {};
}
@@ -1161,26 +1201,35 @@ NpadGcTriggerState EmulatedController::GetTriggers() const {
}
MotionState EmulatedController::GetMotions() const {
+ std::unique_lock lock{mutex};
+
+ // Some drivers like mouse motion need constant refreshing
if (force_update_motion) {
for (auto& device : motion_devices) {
if (!device) {
continue;
}
+ lock.unlock();
device->ForceUpdate();
+ lock.lock();
}
}
+
return controller.motion_state;
}
ControllerColors EmulatedController::GetColors() const {
+ std::scoped_lock lock{mutex};
return controller.colors_state;
}
BatteryLevelState EmulatedController::GetBattery() const {
+ std::scoped_lock lock{mutex};
return controller.battery_state;
}
void EmulatedController::TriggerOnChange(ControllerTriggerType type, bool is_npad_service_update) {
+ std::scoped_lock lock{callback_mutex};
for (const auto& poller_pair : callback_list) {
const ControllerUpdateCallback& poller = poller_pair.second;
if (!is_npad_service_update && poller.is_npad_service) {
@@ -1193,13 +1242,13 @@ void EmulatedController::TriggerOnChange(ControllerTriggerType type, bool is_npa
}
int EmulatedController::SetCallback(ControllerUpdateCallback update_callback) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{callback_mutex};
callback_list.insert_or_assign(last_callback_key, std::move(update_callback));
return last_callback_key++;
}
void EmulatedController::DeleteCallback(int key) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{callback_mutex};
const auto& iterator = callback_list.find(key);
if (iterator == callback_list.end()) {
LOG_ERROR(Input, "Tried to delete non-existent callback {}", key);
diff --git a/src/core/hid/emulated_controller.h b/src/core/hid/emulated_controller.h
index aa52f9572..1e224685d 100644
--- a/src/core/hid/emulated_controller.h
+++ b/src/core/hid/emulated_controller.h
@@ -400,7 +400,7 @@ private:
*/
void TriggerOnChange(ControllerTriggerType type, bool is_service_update);
- NpadIdType npad_id_type;
+ const NpadIdType npad_id_type;
NpadStyleIndex npad_type{NpadStyleIndex::None};
NpadStyleTag supported_style_tag{NpadStyleSet::All};
bool is_connected{false};
@@ -434,6 +434,7 @@ private:
StickDevices tas_stick_devices;
mutable std::mutex mutex;
+ mutable std::mutex callback_mutex;
std::unordered_map<int, ControllerUpdateCallback> callback_list;
int last_callback_key = 0;
diff --git a/src/core/hid/emulated_devices.cpp b/src/core/hid/emulated_devices.cpp
index 708480f2d..cc0dcd931 100644
--- a/src/core/hid/emulated_devices.cpp
+++ b/src/core/hid/emulated_devices.cpp
@@ -169,7 +169,7 @@ void EmulatedDevices::SetKeyboardButton(const Common::Input::CallbackStatus& cal
if (index >= device_status.keyboard_values.size()) {
return;
}
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
bool value_changed = false;
const auto new_status = TransformToButton(callback);
auto& current_status = device_status.keyboard_values[index];
@@ -201,6 +201,7 @@ void EmulatedDevices::SetKeyboardButton(const Common::Input::CallbackStatus& cal
}
if (is_configuring) {
+ lock.unlock();
TriggerOnChange(DeviceTriggerType::Keyboard);
return;
}
@@ -208,6 +209,7 @@ void EmulatedDevices::SetKeyboardButton(const Common::Input::CallbackStatus& cal
// Index should be converted from NativeKeyboard to KeyboardKeyIndex
UpdateKey(index, current_status.value);
+ lock.unlock();
TriggerOnChange(DeviceTriggerType::Keyboard);
}
@@ -227,7 +229,7 @@ void EmulatedDevices::SetKeyboardModifier(const Common::Input::CallbackStatus& c
if (index >= device_status.keyboard_moddifier_values.size()) {
return;
}
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
bool value_changed = false;
const auto new_status = TransformToButton(callback);
auto& current_status = device_status.keyboard_moddifier_values[index];
@@ -259,6 +261,7 @@ void EmulatedDevices::SetKeyboardModifier(const Common::Input::CallbackStatus& c
}
if (is_configuring) {
+ lock.unlock();
TriggerOnChange(DeviceTriggerType::KeyboardModdifier);
return;
}
@@ -289,6 +292,7 @@ void EmulatedDevices::SetKeyboardModifier(const Common::Input::CallbackStatus& c
break;
}
+ lock.unlock();
TriggerOnChange(DeviceTriggerType::KeyboardModdifier);
}
@@ -297,7 +301,7 @@ void EmulatedDevices::SetMouseButton(const Common::Input::CallbackStatus& callba
if (index >= device_status.mouse_button_values.size()) {
return;
}
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
bool value_changed = false;
const auto new_status = TransformToButton(callback);
auto& current_status = device_status.mouse_button_values[index];
@@ -329,6 +333,7 @@ void EmulatedDevices::SetMouseButton(const Common::Input::CallbackStatus& callba
}
if (is_configuring) {
+ lock.unlock();
TriggerOnChange(DeviceTriggerType::Mouse);
return;
}
@@ -351,6 +356,7 @@ void EmulatedDevices::SetMouseButton(const Common::Input::CallbackStatus& callba
break;
}
+ lock.unlock();
TriggerOnChange(DeviceTriggerType::Mouse);
}
@@ -359,13 +365,14 @@ void EmulatedDevices::SetMouseAnalog(const Common::Input::CallbackStatus& callba
if (index >= device_status.mouse_analog_values.size()) {
return;
}
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
const auto analog_value = TransformToAnalog(callback);
device_status.mouse_analog_values[index] = analog_value;
if (is_configuring) {
device_status.mouse_position_state = {};
+ lock.unlock();
TriggerOnChange(DeviceTriggerType::Mouse);
return;
}
@@ -379,17 +386,19 @@ void EmulatedDevices::SetMouseAnalog(const Common::Input::CallbackStatus& callba
break;
}
+ lock.unlock();
TriggerOnChange(DeviceTriggerType::Mouse);
}
void EmulatedDevices::SetMouseStick(const Common::Input::CallbackStatus& callback) {
- std::lock_guard lock{mutex};
+ std::unique_lock lock{mutex};
const auto touch_value = TransformToTouch(callback);
device_status.mouse_stick_value = touch_value;
if (is_configuring) {
device_status.mouse_position_state = {};
+ lock.unlock();
TriggerOnChange(DeviceTriggerType::Mouse);
return;
}
@@ -397,42 +406,52 @@ void EmulatedDevices::SetMouseStick(const Common::Input::CallbackStatus& callbac
device_status.mouse_position_state.x = touch_value.x.value;
device_status.mouse_position_state.y = touch_value.y.value;
+ lock.unlock();
TriggerOnChange(DeviceTriggerType::Mouse);
}
KeyboardValues EmulatedDevices::GetKeyboardValues() const {
+ std::scoped_lock lock{mutex};
return device_status.keyboard_values;
}
KeyboardModifierValues EmulatedDevices::GetKeyboardModdifierValues() const {
+ std::scoped_lock lock{mutex};
return device_status.keyboard_moddifier_values;
}
MouseButtonValues EmulatedDevices::GetMouseButtonsValues() const {
+ std::scoped_lock lock{mutex};
return device_status.mouse_button_values;
}
KeyboardKey EmulatedDevices::GetKeyboard() const {
+ std::scoped_lock lock{mutex};
return device_status.keyboard_state;
}
KeyboardModifier EmulatedDevices::GetKeyboardModifier() const {
+ std::scoped_lock lock{mutex};
return device_status.keyboard_moddifier_state;
}
MouseButton EmulatedDevices::GetMouseButtons() const {
+ std::scoped_lock lock{mutex};
return device_status.mouse_button_state;
}
MousePosition EmulatedDevices::GetMousePosition() const {
+ std::scoped_lock lock{mutex};
return device_status.mouse_position_state;
}
AnalogStickState EmulatedDevices::GetMouseWheel() const {
+ std::scoped_lock lock{mutex};
return device_status.mouse_wheel_state;
}
void EmulatedDevices::TriggerOnChange(DeviceTriggerType type) {
+ std::scoped_lock lock{callback_mutex};
for (const auto& poller_pair : callback_list) {
const InterfaceUpdateCallback& poller = poller_pair.second;
if (poller.on_change) {
@@ -442,13 +461,13 @@ void EmulatedDevices::TriggerOnChange(DeviceTriggerType type) {
}
int EmulatedDevices::SetCallback(InterfaceUpdateCallback update_callback) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{callback_mutex};
callback_list.insert_or_assign(last_callback_key, std::move(update_callback));
return last_callback_key++;
}
void EmulatedDevices::DeleteCallback(int key) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{callback_mutex};
const auto& iterator = callback_list.find(key);
if (iterator == callback_list.end()) {
LOG_ERROR(Input, "Tried to delete non-existent callback {}", key);
diff --git a/src/core/hid/emulated_devices.h b/src/core/hid/emulated_devices.h
index 790d3b411..73e9f0293 100644
--- a/src/core/hid/emulated_devices.h
+++ b/src/core/hid/emulated_devices.h
@@ -200,6 +200,7 @@ private:
MouseStickDevice mouse_stick_device;
mutable std::mutex mutex;
+ mutable std::mutex callback_mutex;
std::unordered_map<int, InterfaceUpdateCallback> callback_list;
int last_callback_key = 0;
diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h
index 026257115..3c4e45fcd 100644
--- a/src/core/hle/ipc_helpers.h
+++ b/src/core/hle/ipc_helpers.h
@@ -385,7 +385,7 @@ public:
T PopRaw();
template <class T>
- std::shared_ptr<T> PopIpcInterface() {
+ std::weak_ptr<T> PopIpcInterface() {
ASSERT(context->Session()->IsDomain());
ASSERT(context->GetDomainMessageHeader().input_object_count > 0);
return context->GetDomainHandler<T>(Pop<u32>() - 1);
diff --git a/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp b/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp
index 8027bec00..7765e7848 100644
--- a/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp
+++ b/src/core/hle/kernel/board/nintendo/nx/k_system_control.cpp
@@ -148,9 +148,9 @@ u64 GenerateUniformRange(u64 min, u64 max, F f) {
} // Anonymous namespace
u64 KSystemControl::GenerateRandomU64() {
- static std::random_device device;
- static std::mt19937 gen(device());
- static std::uniform_int_distribution<u64> distribution(1, std::numeric_limits<u64>::max());
+ std::random_device device;
+ std::mt19937 gen(device());
+ std::uniform_int_distribution<u64> distribution(1, std::numeric_limits<u64>::max());
return distribution(gen);
}
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp
index e19544c54..5828ac923 100644
--- a/src/core/hle/kernel/hle_ipc.cpp
+++ b/src/core/hle/kernel/hle_ipc.cpp
@@ -17,7 +17,6 @@
#include "core/hle/kernel/k_auto_object.h"
#include "core/hle/kernel/k_handle_table.h"
#include "core/hle/kernel/k_process.h"
-#include "core/hle/kernel/k_readable_event.h"
#include "core/hle/kernel/k_server_session.h"
#include "core/hle/kernel/k_thread.h"
#include "core/hle/kernel/kernel.h"
@@ -25,8 +24,15 @@
namespace Kernel {
-SessionRequestHandler::SessionRequestHandler(KernelCore& kernel_, const char* service_name_)
- : kernel{kernel_}, service_thread{kernel.CreateServiceThread(service_name_)} {}
+SessionRequestHandler::SessionRequestHandler(KernelCore& kernel_, const char* service_name_,
+ ServiceThreadType thread_type)
+ : kernel{kernel_} {
+ if (thread_type == ServiceThreadType::CreateNew) {
+ service_thread = kernel.CreateServiceThread(service_name_);
+ } else {
+ service_thread = kernel.GetDefaultServiceThread();
+ }
+}
SessionRequestHandler::~SessionRequestHandler() {
kernel.ReleaseServiceThread(service_thread);
@@ -45,7 +51,7 @@ bool SessionRequestManager::HasSessionRequestHandler(const HLERequestContext& co
LOG_CRITICAL(IPC, "object_id {} is too big!", object_id);
return false;
}
- return DomainHandler(object_id - 1) != nullptr;
+ return !DomainHandler(object_id - 1).expired();
} else {
return session_handler != nullptr;
}
@@ -55,7 +61,7 @@ void SessionRequestHandler::ClientConnected(KServerSession* session) {
session->ClientConnected(shared_from_this());
// Ensure our server session is tracked globally.
- kernel.RegisterServerSession(session);
+ kernel.RegisterServerObject(session);
}
void SessionRequestHandler::ClientDisconnected(KServerSession* session) {
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h
index 754b41ff6..640146137 100644
--- a/src/core/hle/kernel/hle_ipc.h
+++ b/src/core/hle/kernel/hle_ipc.h
@@ -33,6 +33,11 @@ namespace Service {
class ServiceFrameworkBase;
}
+enum class ServiceThreadType {
+ Default,
+ CreateNew,
+};
+
namespace Kernel {
class Domain;
@@ -57,7 +62,8 @@ enum class ThreadWakeupReason;
*/
class SessionRequestHandler : public std::enable_shared_from_this<SessionRequestHandler> {
public:
- SessionRequestHandler(KernelCore& kernel, const char* service_name_);
+ SessionRequestHandler(KernelCore& kernel_, const char* service_name_,
+ ServiceThreadType thread_type);
virtual ~SessionRequestHandler();
/**
@@ -94,6 +100,7 @@ protected:
std::weak_ptr<ServiceThread> service_thread;
};
+using SessionRequestHandlerWeakPtr = std::weak_ptr<SessionRequestHandler>;
using SessionRequestHandlerPtr = std::shared_ptr<SessionRequestHandler>;
/**
@@ -139,7 +146,7 @@ public:
}
}
- SessionRequestHandlerPtr DomainHandler(std::size_t index) const {
+ SessionRequestHandlerWeakPtr DomainHandler(std::size_t index) const {
ASSERT_MSG(index < DomainHandlerCount(), "Unexpected handler index {}", index);
return domain_handlers.at(index);
}
@@ -328,10 +335,10 @@ public:
template <typename T>
std::shared_ptr<T> GetDomainHandler(std::size_t index) const {
- return std::static_pointer_cast<T>(manager->DomainHandler(index));
+ return std::static_pointer_cast<T>(manager.lock()->DomainHandler(index).lock());
}
- void SetSessionRequestManager(std::shared_ptr<SessionRequestManager> manager_) {
+ void SetSessionRequestManager(std::weak_ptr<SessionRequestManager> manager_) {
manager = std::move(manager_);
}
@@ -374,7 +381,7 @@ private:
u32 handles_offset{};
u32 domain_offset{};
- std::shared_ptr<SessionRequestManager> manager;
+ std::weak_ptr<SessionRequestManager> manager;
KernelCore& kernel;
Core::Memory::Memory& memory;
diff --git a/src/core/hle/kernel/init/init_slab_setup.cpp b/src/core/hle/kernel/init/init_slab_setup.cpp
index 36fc0944a..b0f773ee0 100644
--- a/src/core/hle/kernel/init/init_slab_setup.cpp
+++ b/src/core/hle/kernel/init/init_slab_setup.cpp
@@ -7,19 +7,23 @@
#include "common/common_funcs.h"
#include "common/common_types.h"
#include "core/core.h"
+#include "core/device_memory.h"
#include "core/hardware_properties.h"
#include "core/hle/kernel/init/init_slab_setup.h"
#include "core/hle/kernel/k_code_memory.h"
#include "core/hle/kernel/k_event.h"
#include "core/hle/kernel/k_memory_layout.h"
#include "core/hle/kernel/k_memory_manager.h"
+#include "core/hle/kernel/k_page_buffer.h"
#include "core/hle/kernel/k_port.h"
#include "core/hle/kernel/k_process.h"
#include "core/hle/kernel/k_resource_limit.h"
#include "core/hle/kernel/k_session.h"
#include "core/hle/kernel/k_shared_memory.h"
+#include "core/hle/kernel/k_shared_memory_info.h"
#include "core/hle/kernel/k_system_control.h"
#include "core/hle/kernel/k_thread.h"
+#include "core/hle/kernel/k_thread_local_page.h"
#include "core/hle/kernel/k_transfer_memory.h"
namespace Kernel::Init {
@@ -32,9 +36,13 @@ namespace Kernel::Init {
HANDLER(KEvent, (SLAB_COUNT(KEvent)), ##__VA_ARGS__) \
HANDLER(KPort, (SLAB_COUNT(KPort)), ##__VA_ARGS__) \
HANDLER(KSharedMemory, (SLAB_COUNT(KSharedMemory)), ##__VA_ARGS__) \
+ HANDLER(KSharedMemoryInfo, (SLAB_COUNT(KSharedMemory) * 8), ##__VA_ARGS__) \
HANDLER(KTransferMemory, (SLAB_COUNT(KTransferMemory)), ##__VA_ARGS__) \
HANDLER(KCodeMemory, (SLAB_COUNT(KCodeMemory)), ##__VA_ARGS__) \
HANDLER(KSession, (SLAB_COUNT(KSession)), ##__VA_ARGS__) \
+ HANDLER(KThreadLocalPage, \
+ (SLAB_COUNT(KProcess) + (SLAB_COUNT(KProcess) + SLAB_COUNT(KThread)) / 8), \
+ ##__VA_ARGS__) \
HANDLER(KResourceLimit, (SLAB_COUNT(KResourceLimit)), ##__VA_ARGS__)
namespace {
@@ -50,38 +58,46 @@ enum KSlabType : u32 {
// Constexpr counts.
constexpr size_t SlabCountKProcess = 80;
constexpr size_t SlabCountKThread = 800;
-constexpr size_t SlabCountKEvent = 700;
+constexpr size_t SlabCountKEvent = 900;
constexpr size_t SlabCountKInterruptEvent = 100;
-constexpr size_t SlabCountKPort = 256 + 0x20; // Extra 0x20 ports over Nintendo for homebrew.
+constexpr size_t SlabCountKPort = 384;
constexpr size_t SlabCountKSharedMemory = 80;
constexpr size_t SlabCountKTransferMemory = 200;
constexpr size_t SlabCountKCodeMemory = 10;
constexpr size_t SlabCountKDeviceAddressSpace = 300;
-constexpr size_t SlabCountKSession = 933;
+constexpr size_t SlabCountKSession = 1133;
constexpr size_t SlabCountKLightSession = 100;
constexpr size_t SlabCountKObjectName = 7;
constexpr size_t SlabCountKResourceLimit = 5;
constexpr size_t SlabCountKDebug = Core::Hardware::NUM_CPU_CORES;
-constexpr size_t SlabCountKAlpha = 1;
-constexpr size_t SlabCountKBeta = 6;
+constexpr size_t SlabCountKIoPool = 1;
+constexpr size_t SlabCountKIoRegion = 6;
constexpr size_t SlabCountExtraKThread = 160;
+/// Helper function to translate from the slab virtual address to the reserved location in physical
+/// memory.
+static PAddr TranslateSlabAddrToPhysical(KMemoryLayout& memory_layout, VAddr slab_addr) {
+ slab_addr -= memory_layout.GetSlabRegionAddress();
+ return slab_addr + Core::DramMemoryMap::SlabHeapBase;
+}
+
template <typename T>
VAddr InitializeSlabHeap(Core::System& system, KMemoryLayout& memory_layout, VAddr address,
size_t num_objects) {
- // TODO(bunnei): This is just a place holder. We should initialize the appropriate KSlabHeap for
- // kernel object type T with the backing kernel memory pointer once we emulate kernel memory.
const size_t size = Common::AlignUp(sizeof(T) * num_objects, alignof(void*));
VAddr start = Common::AlignUp(address, alignof(T));
- // This is intentionally empty. Once KSlabHeap is fully implemented, we can replace this with
- // the pointer to emulated memory to pass along. Until then, KSlabHeap will just allocate/free
- // host memory.
- void* backing_kernel_memory{};
+ // This should use the virtual memory address passed in, but currently, we do not setup the
+ // kernel virtual memory layout. Instead, we simply map these at a region of physical memory
+ // that we reserve for the slab heaps.
+ // TODO(bunnei): Fix this once we support the kernel virtual memory layout.
if (size > 0) {
+ void* backing_kernel_memory{
+ system.DeviceMemory().GetPointer(TranslateSlabAddrToPhysical(memory_layout, start))};
+
const KMemoryRegion* region = memory_layout.FindVirtual(start + size - 1);
ASSERT(region != nullptr);
ASSERT(region->IsDerivedFrom(KMemoryRegionType_KernelSlab));
@@ -91,6 +107,12 @@ VAddr InitializeSlabHeap(Core::System& system, KMemoryLayout& memory_layout, VAd
return start + size;
}
+size_t CalculateSlabHeapGapSize() {
+ constexpr size_t KernelSlabHeapGapSize = 2_MiB - 296_KiB;
+ static_assert(KernelSlabHeapGapSize <= KernelSlabHeapGapsSizeMax);
+ return KernelSlabHeapGapSize;
+}
+
} // namespace
KSlabResourceCounts KSlabResourceCounts::CreateDefault() {
@@ -109,8 +131,8 @@ KSlabResourceCounts KSlabResourceCounts::CreateDefault() {
.num_KObjectName = SlabCountKObjectName,
.num_KResourceLimit = SlabCountKResourceLimit,
.num_KDebug = SlabCountKDebug,
- .num_KAlpha = SlabCountKAlpha,
- .num_KBeta = SlabCountKBeta,
+ .num_KIoPool = SlabCountKIoPool,
+ .num_KIoRegion = SlabCountKIoRegion,
};
}
@@ -136,11 +158,34 @@ size_t CalculateTotalSlabHeapSize(const KernelCore& kernel) {
#undef ADD_SLAB_SIZE
// Add the reserved size.
- size += KernelSlabHeapGapsSize;
+ size += CalculateSlabHeapGapSize();
return size;
}
+void InitializeKPageBufferSlabHeap(Core::System& system) {
+ auto& kernel = system.Kernel();
+
+ const auto& counts = kernel.SlabResourceCounts();
+ const size_t num_pages =
+ counts.num_KProcess + counts.num_KThread + (counts.num_KProcess + counts.num_KThread) / 8;
+ const size_t slab_size = num_pages * PageSize;
+
+ // Reserve memory from the system resource limit.
+ ASSERT(kernel.GetSystemResourceLimit()->Reserve(LimitableResource::PhysicalMemory, slab_size));
+
+ // Allocate memory for the slab.
+ constexpr auto AllocateOption = KMemoryManager::EncodeOption(
+ KMemoryManager::Pool::System, KMemoryManager::Direction::FromFront);
+ const PAddr slab_address =
+ kernel.MemoryManager().AllocateAndOpenContinuous(num_pages, 1, AllocateOption);
+ ASSERT(slab_address != 0);
+
+ // Initialize the slabheap.
+ KPageBuffer::InitializeSlabHeap(kernel, system.DeviceMemory().GetPointer(slab_address),
+ slab_size);
+}
+
void InitializeSlabHeaps(Core::System& system, KMemoryLayout& memory_layout) {
auto& kernel = system.Kernel();
@@ -160,13 +205,13 @@ void InitializeSlabHeaps(Core::System& system, KMemoryLayout& memory_layout) {
}
// Create an array to represent the gaps between the slabs.
- const size_t total_gap_size = KernelSlabHeapGapsSize;
+ const size_t total_gap_size = CalculateSlabHeapGapSize();
std::array<size_t, slab_types.size()> slab_gaps;
- for (size_t i = 0; i < slab_gaps.size(); i++) {
+ for (auto& slab_gap : slab_gaps) {
// Note: This is an off-by-one error from Nintendo's intention, because GenerateRandomRange
// is inclusive. However, Nintendo also has the off-by-one error, and it's "harmless", so we
// will include it ourselves.
- slab_gaps[i] = KSystemControl::GenerateRandomRange(0, total_gap_size);
+ slab_gap = KSystemControl::GenerateRandomRange(0, total_gap_size);
}
// Sort the array, so that we can treat differences between values as offsets to the starts of
@@ -177,13 +222,21 @@ void InitializeSlabHeaps(Core::System& system, KMemoryLayout& memory_layout) {
}
}
- for (size_t i = 0; i < slab_types.size(); i++) {
+ // Track the gaps, so that we can free them to the unused slab tree.
+ VAddr gap_start = address;
+ size_t gap_size = 0;
+
+ for (size_t i = 0; i < slab_gaps.size(); i++) {
// Add the random gap to the address.
- address += (i == 0) ? slab_gaps[0] : slab_gaps[i] - slab_gaps[i - 1];
+ const auto cur_gap = (i == 0) ? slab_gaps[0] : slab_gaps[i] - slab_gaps[i - 1];
+ address += cur_gap;
+ gap_size += cur_gap;
#define INITIALIZE_SLAB_HEAP(NAME, COUNT, ...) \
case KSlabType_##NAME: \
- address = InitializeSlabHeap<NAME>(system, memory_layout, address, COUNT); \
+ if (COUNT > 0) { \
+ address = InitializeSlabHeap<NAME>(system, memory_layout, address, COUNT); \
+ } \
break;
// Initialize the slabheap.
@@ -192,7 +245,13 @@ void InitializeSlabHeaps(Core::System& system, KMemoryLayout& memory_layout) {
FOREACH_SLAB_TYPE(INITIALIZE_SLAB_HEAP)
// If we somehow get an invalid type, abort.
default:
- UNREACHABLE();
+ UNREACHABLE_MSG("Unknown slab type: {}", slab_types[i]);
+ }
+
+ // If we've hit the end of a gap, free it.
+ if (gap_start + gap_size != address) {
+ gap_start = address;
+ gap_size = 0;
}
}
}
diff --git a/src/core/hle/kernel/init/init_slab_setup.h b/src/core/hle/kernel/init/init_slab_setup.h
index a8f7e0918..f54b67d02 100644
--- a/src/core/hle/kernel/init/init_slab_setup.h
+++ b/src/core/hle/kernel/init/init_slab_setup.h
@@ -32,12 +32,13 @@ struct KSlabResourceCounts {
size_t num_KObjectName;
size_t num_KResourceLimit;
size_t num_KDebug;
- size_t num_KAlpha;
- size_t num_KBeta;
+ size_t num_KIoPool;
+ size_t num_KIoRegion;
};
void InitializeSlabResourceCounts(KernelCore& kernel);
size_t CalculateTotalSlabHeapSize(const KernelCore& kernel);
+void InitializeKPageBufferSlabHeap(Core::System& system);
void InitializeSlabHeaps(Core::System& system, KMemoryLayout& memory_layout);
} // namespace Kernel::Init
diff --git a/src/core/hle/kernel/k_address_arbiter.cpp b/src/core/hle/kernel/k_address_arbiter.cpp
index 1d1f5e5f8..8cdd0490f 100644
--- a/src/core/hle/kernel/k_address_arbiter.cpp
+++ b/src/core/hle/kernel/k_address_arbiter.cpp
@@ -115,7 +115,7 @@ ResultCode KAddressArbiter::Signal(VAddr addr, s32 count) {
{
KScopedSchedulerLock sl(kernel);
- auto it = thread_tree.nfind_light({addr, -1});
+ auto it = thread_tree.nfind_key({addr, -1});
while ((it != thread_tree.end()) && (count <= 0 || num_waiters < count) &&
(it->GetAddressArbiterKey() == addr)) {
// End the thread's wait.
@@ -148,7 +148,7 @@ ResultCode KAddressArbiter::SignalAndIncrementIfEqual(VAddr addr, s32 value, s32
return ResultInvalidState;
}
- auto it = thread_tree.nfind_light({addr, -1});
+ auto it = thread_tree.nfind_key({addr, -1});
while ((it != thread_tree.end()) && (count <= 0 || num_waiters < count) &&
(it->GetAddressArbiterKey() == addr)) {
// End the thread's wait.
@@ -171,7 +171,7 @@ ResultCode KAddressArbiter::SignalAndModifyByWaitingCountIfEqual(VAddr addr, s32
{
[[maybe_unused]] const KScopedSchedulerLock sl(kernel);
- auto it = thread_tree.nfind_light({addr, -1});
+ auto it = thread_tree.nfind_key({addr, -1});
// Determine the updated value.
s32 new_value{};
if (count <= 0) {
diff --git a/src/core/hle/kernel/k_auto_object.h b/src/core/hle/kernel/k_auto_object.h
index 05779f2d5..423e8d8f5 100644
--- a/src/core/hle/kernel/k_auto_object.h
+++ b/src/core/hle/kernel/k_auto_object.h
@@ -89,9 +89,7 @@ public:
explicit KAutoObject(KernelCore& kernel_) : kernel(kernel_) {
RegisterWithKernel();
}
- virtual ~KAutoObject() {
- UnregisterWithKernel();
- }
+ virtual ~KAutoObject() = default;
static KAutoObject* Create(KAutoObject* ptr);
@@ -163,11 +161,12 @@ public:
do {
ASSERT(cur_ref_count > 0);
} while (!m_ref_count.compare_exchange_weak(cur_ref_count, cur_ref_count - 1,
- std::memory_order_relaxed));
+ std::memory_order_acq_rel));
// If ref count hits zero, destroy the object.
if (cur_ref_count - 1 == 0) {
this->Destroy();
+ this->UnregisterWithKernel();
}
}
diff --git a/src/core/hle/kernel/k_class_token.h b/src/core/hle/kernel/k_class_token.h
index 980010150..93fc8786d 100644
--- a/src/core/hle/kernel/k_class_token.h
+++ b/src/core/hle/kernel/k_class_token.h
@@ -4,8 +4,6 @@
#pragma once
-#include <atomic>
-
#include "common/bit_util.h"
#include "common/common_types.h"
diff --git a/src/core/hle/kernel/k_code_memory.cpp b/src/core/hle/kernel/k_code_memory.cpp
index 0b225e8e0..09eaf004c 100644
--- a/src/core/hle/kernel/k_code_memory.cpp
+++ b/src/core/hle/kernel/k_code_memory.cpp
@@ -5,7 +5,6 @@
#include "common/alignment.h"
#include "common/common_types.h"
#include "core/device_memory.h"
-#include "core/hle/kernel/k_auto_object.h"
#include "core/hle/kernel/k_code_memory.h"
#include "core/hle/kernel/k_light_lock.h"
#include "core/hle/kernel/k_memory_block.h"
@@ -29,15 +28,21 @@ ResultCode KCodeMemory::Initialize(Core::DeviceMemory& device_memory, VAddr addr
auto& page_table = m_owner->PageTable();
// Construct the page group.
- m_page_group = KPageLinkedList(addr, Common::DivideUp(size, PageSize));
+ m_page_group =
+ KPageLinkedList(page_table.GetPhysicalAddr(addr), Common::DivideUp(size, PageSize));
// Lock the memory.
R_TRY(page_table.LockForCodeMemory(addr, size))
// Clear the memory.
- for (const auto& block : m_page_group.Nodes()) {
- std::memset(device_memory.GetPointer(block.GetAddress()), 0xFF, block.GetSize());
- }
+ //
+ // FIXME: this ends up clobbering address ranges outside the scope of the mapping within
+ // guest memory, and is not specifically required if the guest program is correctly
+ // written, so disable until this is further investigated.
+ //
+ // for (const auto& block : m_page_group.Nodes()) {
+ // std::memset(device_memory.GetPointer(block.GetAddress()), 0xFF, block.GetSize());
+ // }
// Set remaining tracking members.
m_address = addr;
diff --git a/src/core/hle/kernel/k_condition_variable.cpp b/src/core/hle/kernel/k_condition_variable.cpp
index aadcc297a..aa29922d0 100644
--- a/src/core/hle/kernel/k_condition_variable.cpp
+++ b/src/core/hle/kernel/k_condition_variable.cpp
@@ -9,7 +9,6 @@
#include "core/hle/kernel/k_process.h"
#include "core/hle/kernel/k_scheduler.h"
#include "core/hle/kernel/k_scoped_scheduler_lock_and_sleep.h"
-#include "core/hle/kernel/k_synchronization_object.h"
#include "core/hle/kernel/k_thread.h"
#include "core/hle/kernel/k_thread_queue.h"
#include "core/hle/kernel/kernel.h"
@@ -244,7 +243,7 @@ void KConditionVariable::Signal(u64 cv_key, s32 count) {
{
KScopedSchedulerLock sl(kernel);
- auto it = thread_tree.nfind_light({cv_key, -1});
+ auto it = thread_tree.nfind_key({cv_key, -1});
while ((it != thread_tree.end()) && (count <= 0 || num_waiters < count) &&
(it->GetConditionVariableKey() == cv_key)) {
KThread* target_thread = std::addressof(*it);
diff --git a/src/core/hle/kernel/k_handle_table.cpp b/src/core/hle/kernel/k_handle_table.cpp
index cf95f0852..db7512ee7 100644
--- a/src/core/hle/kernel/k_handle_table.cpp
+++ b/src/core/hle/kernel/k_handle_table.cpp
@@ -63,7 +63,7 @@ bool KHandleTable::Remove(Handle handle) {
return true;
}
-ResultCode KHandleTable::Add(Handle* out_handle, KAutoObject* obj, u16 type) {
+ResultCode KHandleTable::Add(Handle* out_handle, KAutoObject* obj) {
KScopedDisableDispatch dd(kernel);
KScopedSpinLock lk(m_lock);
@@ -75,7 +75,7 @@ ResultCode KHandleTable::Add(Handle* out_handle, KAutoObject* obj, u16 type) {
const auto linear_id = this->AllocateLinearId();
const auto index = this->AllocateEntry();
- m_entry_infos[index].info = {.linear_id = linear_id, .type = type};
+ m_entry_infos[index].linear_id = linear_id;
m_objects[index] = obj;
obj->Open();
@@ -116,7 +116,7 @@ void KHandleTable::Unreserve(Handle handle) {
}
}
-void KHandleTable::Register(Handle handle, KAutoObject* obj, u16 type) {
+void KHandleTable::Register(Handle handle, KAutoObject* obj) {
KScopedDisableDispatch dd(kernel);
KScopedSpinLock lk(m_lock);
@@ -132,7 +132,7 @@ void KHandleTable::Register(Handle handle, KAutoObject* obj, u16 type) {
// Set the entry.
ASSERT(m_objects[index] == nullptr);
- m_entry_infos[index].info = {.linear_id = static_cast<u16>(linear_id), .type = type};
+ m_entry_infos[index].linear_id = static_cast<u16>(linear_id);
m_objects[index] = obj;
obj->Open();
diff --git a/src/core/hle/kernel/k_handle_table.h b/src/core/hle/kernel/k_handle_table.h
index 87004a0f9..dd27689b6 100644
--- a/src/core/hle/kernel/k_handle_table.h
+++ b/src/core/hle/kernel/k_handle_table.h
@@ -42,7 +42,7 @@ public:
m_free_head_index = -1;
// Free all entries.
- for (s32 i = 0; i < static_cast<s32>(m_table_size); ++i) {
+ for (s16 i = 0; i < static_cast<s16>(m_table_size); ++i) {
m_objects[i] = nullptr;
m_entry_infos[i].next_free_index = i - 1;
m_free_head_index = i;
@@ -104,17 +104,8 @@ public:
ResultCode Reserve(Handle* out_handle);
void Unreserve(Handle handle);
- template <typename T>
- ResultCode Add(Handle* out_handle, T* obj) {
- static_assert(std::is_base_of_v<KAutoObject, T>);
- return this->Add(out_handle, obj, obj->GetTypeObj().GetClassToken());
- }
-
- template <typename T>
- void Register(Handle handle, T* obj) {
- static_assert(std::is_base_of_v<KAutoObject, T>);
- return this->Register(handle, obj, obj->GetTypeObj().GetClassToken());
- }
+ ResultCode Add(Handle* out_handle, KAutoObject* obj);
+ void Register(Handle handle, KAutoObject* obj);
template <typename T>
bool GetMultipleObjects(T** out, const Handle* handles, size_t num_handles) const {
@@ -160,9 +151,6 @@ public:
}
private:
- ResultCode Add(Handle* out_handle, KAutoObject* obj, u16 type);
- void Register(Handle handle, KAutoObject* obj, u16 type);
-
s32 AllocateEntry() {
ASSERT(m_count < m_table_size);
@@ -179,7 +167,7 @@ private:
ASSERT(m_count > 0);
m_objects[index] = nullptr;
- m_entry_infos[index].next_free_index = m_free_head_index;
+ m_entry_infos[index].next_free_index = static_cast<s16>(m_free_head_index);
m_free_head_index = index;
@@ -278,19 +266,13 @@ private:
}
union EntryInfo {
- struct {
- u16 linear_id;
- u16 type;
- } info;
- s32 next_free_index;
+ u16 linear_id;
+ s16 next_free_index;
constexpr u16 GetLinearId() const {
- return info.linear_id;
- }
- constexpr u16 GetType() const {
- return info.type;
+ return linear_id;
}
- constexpr s32 GetNextFreeIndex() const {
+ constexpr s16 GetNextFreeIndex() const {
return next_free_index;
}
};
diff --git a/src/core/hle/kernel/k_memory_layout.h b/src/core/hle/kernel/k_memory_layout.h
index bcddb0d62..0858827b6 100644
--- a/src/core/hle/kernel/k_memory_layout.h
+++ b/src/core/hle/kernel/k_memory_layout.h
@@ -57,11 +57,11 @@ constexpr std::size_t KernelPageTableHeapSize = GetMaximumOverheadSize(MainMemor
constexpr std::size_t KernelInitialPageHeapSize = 128_KiB;
constexpr std::size_t KernelSlabHeapDataSize = 5_MiB;
-constexpr std::size_t KernelSlabHeapGapsSize = 2_MiB - 64_KiB;
-constexpr std::size_t KernelSlabHeapSize = KernelSlabHeapDataSize + KernelSlabHeapGapsSize;
+constexpr std::size_t KernelSlabHeapGapsSizeMax = 2_MiB - 64_KiB;
+constexpr std::size_t KernelSlabHeapSize = KernelSlabHeapDataSize + KernelSlabHeapGapsSizeMax;
// NOTE: This is calculated from KThread slab counts, assuming KThread size <= 0x860.
-constexpr std::size_t KernelSlabHeapAdditionalSize = 416_KiB;
+constexpr std::size_t KernelSlabHeapAdditionalSize = 0x68000;
constexpr std::size_t KernelResourceSize =
KernelPageTableHeapSize + KernelInitialPageHeapSize + KernelSlabHeapSize;
diff --git a/src/core/hle/kernel/k_memory_manager.cpp b/src/core/hle/kernel/k_memory_manager.cpp
index a2f18f643..17a1b76c7 100644
--- a/src/core/hle/kernel/k_memory_manager.cpp
+++ b/src/core/hle/kernel/k_memory_manager.cpp
@@ -15,7 +15,6 @@
#include "core/hle/kernel/k_page_linked_list.h"
#include "core/hle/kernel/kernel.h"
#include "core/hle/kernel/svc_results.h"
-#include "core/memory.h"
namespace Kernel {
diff --git a/src/core/hle/kernel/k_page_buffer.cpp b/src/core/hle/kernel/k_page_buffer.cpp
new file mode 100644
index 000000000..f7df4a9a8
--- /dev/null
+++ b/src/core/hle/kernel/k_page_buffer.cpp
@@ -0,0 +1,19 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "common/alignment.h"
+#include "common/assert.h"
+#include "core/core.h"
+#include "core/device_memory.h"
+#include "core/hle/kernel/k_page_buffer.h"
+#include "core/hle/kernel/memory_types.h"
+
+namespace Kernel {
+
+KPageBuffer* KPageBuffer::FromPhysicalAddress(Core::System& system, PAddr phys_addr) {
+ ASSERT(Common::IsAligned(phys_addr, PageSize));
+ return reinterpret_cast<KPageBuffer*>(system.DeviceMemory().GetPointer(phys_addr));
+}
+
+} // namespace Kernel
diff --git a/src/core/hle/kernel/k_page_buffer.h b/src/core/hle/kernel/k_page_buffer.h
new file mode 100644
index 000000000..1d11a4e27
--- /dev/null
+++ b/src/core/hle/kernel/k_page_buffer.h
@@ -0,0 +1,28 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <array>
+
+#include "common/common_types.h"
+#include "core/hle/kernel/memory_types.h"
+#include "core/hle/kernel/slab_helpers.h"
+
+namespace Kernel {
+
+class KPageBuffer final : public KSlabAllocated<KPageBuffer> {
+public:
+ KPageBuffer() = default;
+
+ static KPageBuffer* FromPhysicalAddress(Core::System& system, PAddr phys_addr);
+
+private:
+ [[maybe_unused]] alignas(PageSize) std::array<u8, PageSize> m_buffer{};
+};
+
+static_assert(sizeof(KPageBuffer) == PageSize);
+static_assert(alignof(KPageBuffer) == PageSize);
+
+} // namespace Kernel
diff --git a/src/core/hle/kernel/k_page_linked_list.h b/src/core/hle/kernel/k_page_linked_list.h
index 0e2ae582a..869228322 100644
--- a/src/core/hle/kernel/k_page_linked_list.h
+++ b/src/core/hle/kernel/k_page_linked_list.h
@@ -89,6 +89,10 @@ public:
return ResultSuccess;
}
+ bool Empty() const {
+ return nodes.empty();
+ }
+
private:
std::list<Node> nodes;
};
diff --git a/src/core/hle/kernel/k_page_table.cpp b/src/core/hle/kernel/k_page_table.cpp
index 0602de1f7..47ea3c89c 100644
--- a/src/core/hle/kernel/k_page_table.cpp
+++ b/src/core/hle/kernel/k_page_table.cpp
@@ -346,7 +346,8 @@ ResultCode KPageTable::MapCodeMemory(VAddr dst_address, VAddr src_address, std::
return ResultSuccess;
}
-ResultCode KPageTable::UnmapCodeMemory(VAddr dst_address, VAddr src_address, std::size_t size) {
+ResultCode KPageTable::UnmapCodeMemory(VAddr dst_address, VAddr src_address, std::size_t size,
+ ICacheInvalidationStrategy icache_invalidation_strategy) {
// Validate the mapping request.
R_UNLESS(this->CanContain(dst_address, size, KMemoryState::AliasCode),
ResultInvalidMemoryRegion);
@@ -396,7 +397,11 @@ ResultCode KPageTable::UnmapCodeMemory(VAddr dst_address, VAddr src_address, std
bool reprotected_pages = false;
SCOPE_EXIT({
if (reprotected_pages && any_code_pages) {
- system.InvalidateCpuInstructionCacheRange(dst_address, size);
+ if (icache_invalidation_strategy == ICacheInvalidationStrategy::InvalidateRange) {
+ system.InvalidateCpuInstructionCacheRange(dst_address, size);
+ } else {
+ system.InvalidateCpuInstructionCaches();
+ }
}
});
@@ -424,6 +429,120 @@ ResultCode KPageTable::UnmapCodeMemory(VAddr dst_address, VAddr src_address, std
return ResultSuccess;
}
+VAddr KPageTable::FindFreeArea(VAddr region_start, std::size_t region_num_pages,
+ std::size_t num_pages, std::size_t alignment, std::size_t offset,
+ std::size_t guard_pages) {
+ VAddr address = 0;
+
+ if (num_pages <= region_num_pages) {
+ if (this->IsAslrEnabled()) {
+ // Try to directly find a free area up to 8 times.
+ for (std::size_t i = 0; i < 8; i++) {
+ const std::size_t random_offset =
+ KSystemControl::GenerateRandomRange(
+ 0, (region_num_pages - num_pages - guard_pages) * PageSize / alignment) *
+ alignment;
+ const VAddr candidate =
+ Common::AlignDown((region_start + random_offset), alignment) + offset;
+
+ KMemoryInfo info = this->QueryInfoImpl(candidate);
+
+ if (info.state != KMemoryState::Free) {
+ continue;
+ }
+ if (region_start > candidate) {
+ continue;
+ }
+ if (info.GetAddress() + guard_pages * PageSize > candidate) {
+ continue;
+ }
+
+ const VAddr candidate_end = candidate + (num_pages + guard_pages) * PageSize - 1;
+ if (candidate_end > info.GetLastAddress()) {
+ continue;
+ }
+ if (candidate_end > region_start + region_num_pages * PageSize - 1) {
+ continue;
+ }
+
+ address = candidate;
+ break;
+ }
+ // Fall back to finding the first free area with a random offset.
+ if (address == 0) {
+ // NOTE: Nintendo does not account for guard pages here.
+ // This may theoretically cause an offset to be chosen that cannot be mapped. We
+ // will account for guard pages.
+ const std::size_t offset_pages = KSystemControl::GenerateRandomRange(
+ 0, region_num_pages - num_pages - guard_pages);
+ address = block_manager->FindFreeArea(region_start + offset_pages * PageSize,
+ region_num_pages - offset_pages, num_pages,
+ alignment, offset, guard_pages);
+ }
+ }
+
+ // Find the first free area.
+ if (address == 0) {
+ address = block_manager->FindFreeArea(region_start, region_num_pages, num_pages,
+ alignment, offset, guard_pages);
+ }
+ }
+
+ return address;
+}
+
+ResultCode KPageTable::MakePageGroup(KPageLinkedList& pg, VAddr addr, size_t num_pages) {
+ ASSERT(this->IsLockedByCurrentThread());
+
+ const size_t size = num_pages * PageSize;
+
+ // We're making a new group, not adding to an existing one.
+ R_UNLESS(pg.Empty(), ResultInvalidCurrentMemory);
+
+ // Begin traversal.
+ Common::PageTable::TraversalContext context;
+ Common::PageTable::TraversalEntry next_entry;
+ R_UNLESS(page_table_impl.BeginTraversal(next_entry, context, addr), ResultInvalidCurrentMemory);
+
+ // Prepare tracking variables.
+ PAddr cur_addr = next_entry.phys_addr;
+ size_t cur_size = next_entry.block_size - (cur_addr & (next_entry.block_size - 1));
+ size_t tot_size = cur_size;
+
+ // Iterate, adding to group as we go.
+ const auto& memory_layout = system.Kernel().MemoryLayout();
+ while (tot_size < size) {
+ R_UNLESS(page_table_impl.ContinueTraversal(next_entry, context),
+ ResultInvalidCurrentMemory);
+
+ if (next_entry.phys_addr != (cur_addr + cur_size)) {
+ const size_t cur_pages = cur_size / PageSize;
+
+ R_UNLESS(IsHeapPhysicalAddress(memory_layout, cur_addr), ResultInvalidCurrentMemory);
+ R_TRY(pg.AddBlock(cur_addr, cur_pages));
+
+ cur_addr = next_entry.phys_addr;
+ cur_size = next_entry.block_size;
+ } else {
+ cur_size += next_entry.block_size;
+ }
+
+ tot_size += next_entry.block_size;
+ }
+
+ // Ensure we add the right amount for the last block.
+ if (tot_size > size) {
+ cur_size -= (tot_size - size);
+ }
+
+ // Add the last block.
+ const size_t cur_pages = cur_size / PageSize;
+ R_UNLESS(IsHeapPhysicalAddress(memory_layout, cur_addr), ResultInvalidCurrentMemory);
+ R_TRY(pg.AddBlock(cur_addr, cur_pages));
+
+ return ResultSuccess;
+}
+
ResultCode KPageTable::UnmapProcessMemory(VAddr dst_addr, std::size_t size,
KPageTable& src_page_table, VAddr src_addr) {
KScopedLightLock lk(general_lock);
@@ -449,6 +568,8 @@ ResultCode KPageTable::UnmapProcessMemory(VAddr dst_addr, std::size_t size,
block_manager->Update(dst_addr, num_pages, KMemoryState::Free, KMemoryPermission::None,
KMemoryAttribute::None);
+ system.InvalidateCpuInstructionCaches();
+
return ResultSuccess;
}
@@ -1055,6 +1176,46 @@ ResultCode KPageTable::MapPages(VAddr address, KPageLinkedList& page_linked_list
return ResultSuccess;
}
+ResultCode KPageTable::MapPages(VAddr* out_addr, std::size_t num_pages, std::size_t alignment,
+ PAddr phys_addr, bool is_pa_valid, VAddr region_start,
+ std::size_t region_num_pages, KMemoryState state,
+ KMemoryPermission perm) {
+ ASSERT(Common::IsAligned(alignment, PageSize) && alignment >= PageSize);
+
+ // Ensure this is a valid map request.
+ R_UNLESS(this->CanContain(region_start, region_num_pages * PageSize, state),
+ ResultInvalidCurrentMemory);
+ R_UNLESS(num_pages < region_num_pages, ResultOutOfMemory);
+
+ // Lock the table.
+ KScopedLightLock lk(general_lock);
+
+ // Find a random address to map at.
+ VAddr addr = this->FindFreeArea(region_start, region_num_pages, num_pages, alignment, 0,
+ this->GetNumGuardPages());
+ R_UNLESS(addr != 0, ResultOutOfMemory);
+ ASSERT(Common::IsAligned(addr, alignment));
+ ASSERT(this->CanContain(addr, num_pages * PageSize, state));
+ ASSERT(this->CheckMemoryState(addr, num_pages * PageSize, KMemoryState::All, KMemoryState::Free,
+ KMemoryPermission::None, KMemoryPermission::None,
+ KMemoryAttribute::None, KMemoryAttribute::None)
+ .IsSuccess());
+
+ // Perform mapping operation.
+ if (is_pa_valid) {
+ R_TRY(this->Operate(addr, num_pages, perm, OperationType::Map, phys_addr));
+ } else {
+ UNIMPLEMENTED();
+ }
+
+ // Update the blocks.
+ block_manager->Update(addr, num_pages, state, perm);
+
+ // We successfully mapped the pages.
+ *out_addr = addr;
+ return ResultSuccess;
+}
+
ResultCode KPageTable::UnmapPages(VAddr addr, const KPageLinkedList& page_linked_list) {
ASSERT(this->IsLockedByCurrentThread());
@@ -1097,6 +1258,55 @@ ResultCode KPageTable::UnmapPages(VAddr addr, KPageLinkedList& page_linked_list,
return ResultSuccess;
}
+ResultCode KPageTable::UnmapPages(VAddr address, std::size_t num_pages, KMemoryState state) {
+ // Check that the unmap is in range.
+ const std::size_t size = num_pages * PageSize;
+ R_UNLESS(this->Contains(address, size), ResultInvalidCurrentMemory);
+
+ // Lock the table.
+ KScopedLightLock lk(general_lock);
+
+ // Check the memory state.
+ std::size_t num_allocator_blocks{};
+ R_TRY(this->CheckMemoryState(std::addressof(num_allocator_blocks), address, size,
+ KMemoryState::All, state, KMemoryPermission::None,
+ KMemoryPermission::None, KMemoryAttribute::All,
+ KMemoryAttribute::None));
+
+ // Perform the unmap.
+ R_TRY(Operate(address, num_pages, KMemoryPermission::None, OperationType::Unmap));
+
+ // Update the blocks.
+ block_manager->Update(address, num_pages, KMemoryState::Free, KMemoryPermission::None);
+
+ return ResultSuccess;
+}
+
+ResultCode KPageTable::MakeAndOpenPageGroup(KPageLinkedList* out, VAddr address, size_t num_pages,
+ KMemoryState state_mask, KMemoryState state,
+ KMemoryPermission perm_mask, KMemoryPermission perm,
+ KMemoryAttribute attr_mask, KMemoryAttribute attr) {
+ // Ensure that the page group isn't null.
+ ASSERT(out != nullptr);
+
+ // Make sure that the region we're mapping is valid for the table.
+ const size_t size = num_pages * PageSize;
+ R_UNLESS(this->Contains(address, size), ResultInvalidCurrentMemory);
+
+ // Lock the table.
+ KScopedLightLock lk(general_lock);
+
+ // Check if state allows us to create the group.
+ R_TRY(this->CheckMemoryState(address, size, state_mask | KMemoryState::FlagReferenceCounted,
+ state | KMemoryState::FlagReferenceCounted, perm_mask, perm,
+ attr_mask, attr));
+
+ // Create a new page group for the region.
+ R_TRY(this->MakePageGroup(*out, address, num_pages));
+
+ return ResultSuccess;
+}
+
ResultCode KPageTable::SetProcessMemoryPermission(VAddr addr, std::size_t size,
Svc::MemoryPermission svc_perm) {
const size_t num_pages = size / PageSize;
@@ -1479,57 +1689,21 @@ ResultCode KPageTable::UnlockForDeviceAddressSpace(VAddr addr, std::size_t size)
}
ResultCode KPageTable::LockForCodeMemory(VAddr addr, std::size_t size) {
- KScopedLightLock lk(general_lock);
-
- KMemoryPermission new_perm = KMemoryPermission::NotMapped | KMemoryPermission::KernelReadWrite;
-
- KMemoryPermission old_perm{};
-
- if (const ResultCode result{CheckMemoryState(
- nullptr, &old_perm, nullptr, nullptr, addr, size, KMemoryState::FlagCanCodeMemory,
- KMemoryState::FlagCanCodeMemory, KMemoryPermission::All,
- KMemoryPermission::UserReadWrite, KMemoryAttribute::All, KMemoryAttribute::None)};
- result.IsError()) {
- return result;
- }
-
- new_perm = (new_perm != KMemoryPermission::None) ? new_perm : old_perm;
-
- block_manager->UpdateLock(
- addr, size / PageSize,
- [](KMemoryBlockManager::iterator block, KMemoryPermission permission) {
- block->ShareToDevice(permission);
- },
- new_perm);
-
- return ResultSuccess;
+ return this->LockMemoryAndOpen(
+ nullptr, nullptr, addr, size, KMemoryState::FlagCanCodeMemory,
+ KMemoryState::FlagCanCodeMemory, KMemoryPermission::All, KMemoryPermission::UserReadWrite,
+ KMemoryAttribute::All, KMemoryAttribute::None,
+ static_cast<KMemoryPermission>(KMemoryPermission::NotMapped |
+ KMemoryPermission::KernelReadWrite),
+ KMemoryAttribute::Locked);
}
ResultCode KPageTable::UnlockForCodeMemory(VAddr addr, std::size_t size) {
- KScopedLightLock lk(general_lock);
-
- KMemoryPermission new_perm = KMemoryPermission::UserReadWrite;
-
- KMemoryPermission old_perm{};
-
- if (const ResultCode result{CheckMemoryState(
- nullptr, &old_perm, nullptr, nullptr, addr, size, KMemoryState::FlagCanCodeMemory,
- KMemoryState::FlagCanCodeMemory, KMemoryPermission::None, KMemoryPermission::None,
- KMemoryAttribute::All, KMemoryAttribute::Locked)};
- result.IsError()) {
- return result;
- }
-
- new_perm = (new_perm != KMemoryPermission::None) ? new_perm : old_perm;
-
- block_manager->UpdateLock(
- addr, size / PageSize,
- [](KMemoryBlockManager::iterator block, KMemoryPermission permission) {
- block->UnshareToDevice(permission);
- },
- new_perm);
-
- return ResultSuccess;
+ return this->UnlockMemory(addr, size, KMemoryState::FlagCanCodeMemory,
+ KMemoryState::FlagCanCodeMemory, KMemoryPermission::None,
+ KMemoryPermission::None, KMemoryAttribute::All,
+ KMemoryAttribute::Locked, KMemoryPermission::UserReadWrite,
+ KMemoryAttribute::Locked, nullptr);
}
ResultCode KPageTable::InitializeMemoryLayout(VAddr start, VAddr end) {
@@ -1865,4 +2039,109 @@ ResultCode KPageTable::CheckMemoryState(KMemoryState* out_state, KMemoryPermissi
return ResultSuccess;
}
+ResultCode KPageTable::LockMemoryAndOpen(KPageLinkedList* out_pg, PAddr* out_paddr, VAddr addr,
+ size_t size, KMemoryState state_mask, KMemoryState state,
+ KMemoryPermission perm_mask, KMemoryPermission perm,
+ KMemoryAttribute attr_mask, KMemoryAttribute attr,
+ KMemoryPermission new_perm, KMemoryAttribute lock_attr) {
+ // Validate basic preconditions.
+ ASSERT((lock_attr & attr) == KMemoryAttribute::None);
+ ASSERT((lock_attr & (KMemoryAttribute::IpcLocked | KMemoryAttribute::DeviceShared)) ==
+ KMemoryAttribute::None);
+
+ // Validate the lock request.
+ const size_t num_pages = size / PageSize;
+ R_UNLESS(this->Contains(addr, size), ResultInvalidCurrentMemory);
+
+ // Lock the table.
+ KScopedLightLock lk(general_lock);
+
+ // Check that the output page group is empty, if it exists.
+ if (out_pg) {
+ ASSERT(out_pg->GetNumPages() == 0);
+ }
+
+ // Check the state.
+ KMemoryState old_state{};
+ KMemoryPermission old_perm{};
+ KMemoryAttribute old_attr{};
+ size_t num_allocator_blocks{};
+ R_TRY(this->CheckMemoryState(std::addressof(old_state), std::addressof(old_perm),
+ std::addressof(old_attr), std::addressof(num_allocator_blocks),
+ addr, size, state_mask | KMemoryState::FlagReferenceCounted,
+ state | KMemoryState::FlagReferenceCounted, perm_mask, perm,
+ attr_mask, attr));
+
+ // Get the physical address, if we're supposed to.
+ if (out_paddr != nullptr) {
+ ASSERT(this->GetPhysicalAddressLocked(out_paddr, addr));
+ }
+
+ // Make the page group, if we're supposed to.
+ if (out_pg != nullptr) {
+ R_TRY(this->MakePageGroup(*out_pg, addr, num_pages));
+ }
+
+ // Decide on new perm and attr.
+ new_perm = (new_perm != KMemoryPermission::None) ? new_perm : old_perm;
+ KMemoryAttribute new_attr = static_cast<KMemoryAttribute>(old_attr | lock_attr);
+
+ // Update permission, if we need to.
+ if (new_perm != old_perm) {
+ R_TRY(Operate(addr, num_pages, new_perm, OperationType::ChangePermissions));
+ }
+
+ // Apply the memory block updates.
+ block_manager->Update(addr, num_pages, old_state, new_perm, new_attr);
+
+ return ResultSuccess;
+}
+
+ResultCode KPageTable::UnlockMemory(VAddr addr, size_t size, KMemoryState state_mask,
+ KMemoryState state, KMemoryPermission perm_mask,
+ KMemoryPermission perm, KMemoryAttribute attr_mask,
+ KMemoryAttribute attr, KMemoryPermission new_perm,
+ KMemoryAttribute lock_attr, const KPageLinkedList* pg) {
+ // Validate basic preconditions.
+ ASSERT((attr_mask & lock_attr) == lock_attr);
+ ASSERT((attr & lock_attr) == lock_attr);
+
+ // Validate the unlock request.
+ const size_t num_pages = size / PageSize;
+ R_UNLESS(this->Contains(addr, size), ResultInvalidCurrentMemory);
+
+ // Lock the table.
+ KScopedLightLock lk(general_lock);
+
+ // Check the state.
+ KMemoryState old_state{};
+ KMemoryPermission old_perm{};
+ KMemoryAttribute old_attr{};
+ size_t num_allocator_blocks{};
+ R_TRY(this->CheckMemoryState(std::addressof(old_state), std::addressof(old_perm),
+ std::addressof(old_attr), std::addressof(num_allocator_blocks),
+ addr, size, state_mask | KMemoryState::FlagReferenceCounted,
+ state | KMemoryState::FlagReferenceCounted, perm_mask, perm,
+ attr_mask, attr));
+
+ // Check the page group.
+ if (pg != nullptr) {
+ UNIMPLEMENTED_MSG("PageGroup support is unimplemented!");
+ }
+
+ // Decide on new perm and attr.
+ new_perm = (new_perm != KMemoryPermission::None) ? new_perm : old_perm;
+ KMemoryAttribute new_attr = static_cast<KMemoryAttribute>(old_attr & ~lock_attr);
+
+ // Update permission, if we need to.
+ if (new_perm != old_perm) {
+ R_TRY(Operate(addr, num_pages, new_perm, OperationType::ChangePermissions));
+ }
+
+ // Apply the memory block updates.
+ block_manager->Update(addr, num_pages, old_state, new_perm, new_attr);
+
+ return ResultSuccess;
+}
+
} // namespace Kernel
diff --git a/src/core/hle/kernel/k_page_table.h b/src/core/hle/kernel/k_page_table.h
index e99abe36a..dd6022975 100644
--- a/src/core/hle/kernel/k_page_table.h
+++ b/src/core/hle/kernel/k_page_table.h
@@ -12,6 +12,7 @@
#include "core/file_sys/program_metadata.h"
#include "core/hle/kernel/k_light_lock.h"
#include "core/hle/kernel/k_memory_block.h"
+#include "core/hle/kernel/k_memory_layout.h"
#include "core/hle/kernel/k_memory_manager.h"
#include "core/hle/result.h"
@@ -25,6 +26,8 @@ class KMemoryBlockManager;
class KPageTable final {
public:
+ enum class ICacheInvalidationStrategy : u32 { InvalidateRange, InvalidateAll };
+
YUZU_NON_COPYABLE(KPageTable);
YUZU_NON_MOVEABLE(KPageTable);
@@ -37,7 +40,8 @@ public:
ResultCode MapProcessCode(VAddr addr, std::size_t pages_count, KMemoryState state,
KMemoryPermission perm);
ResultCode MapCodeMemory(VAddr dst_address, VAddr src_address, std::size_t size);
- ResultCode UnmapCodeMemory(VAddr dst_address, VAddr src_address, std::size_t size);
+ ResultCode UnmapCodeMemory(VAddr dst_address, VAddr src_address, std::size_t size,
+ ICacheInvalidationStrategy icache_invalidation_strategy);
ResultCode UnmapProcessMemory(VAddr dst_addr, std::size_t size, KPageTable& src_page_table,
VAddr src_addr);
ResultCode MapPhysicalMemory(VAddr addr, std::size_t size);
@@ -46,7 +50,14 @@ public:
ResultCode UnmapMemory(VAddr dst_addr, VAddr src_addr, std::size_t size);
ResultCode MapPages(VAddr addr, KPageLinkedList& page_linked_list, KMemoryState state,
KMemoryPermission perm);
+ ResultCode MapPages(VAddr* out_addr, std::size_t num_pages, std::size_t alignment,
+ PAddr phys_addr, KMemoryState state, KMemoryPermission perm) {
+ return this->MapPages(out_addr, num_pages, alignment, phys_addr, true,
+ this->GetRegionAddress(state), this->GetRegionSize(state) / PageSize,
+ state, perm);
+ }
ResultCode UnmapPages(VAddr addr, KPageLinkedList& page_linked_list, KMemoryState state);
+ ResultCode UnmapPages(VAddr address, std::size_t num_pages, KMemoryState state);
ResultCode SetProcessMemoryPermission(VAddr addr, std::size_t size,
Svc::MemoryPermission svc_perm);
KMemoryInfo QueryInfo(VAddr addr);
@@ -64,6 +75,10 @@ public:
ResultCode UnlockForDeviceAddressSpace(VAddr addr, std::size_t size);
ResultCode LockForCodeMemory(VAddr addr, std::size_t size);
ResultCode UnlockForCodeMemory(VAddr addr, std::size_t size);
+ ResultCode MakeAndOpenPageGroup(KPageLinkedList* out, VAddr address, size_t num_pages,
+ KMemoryState state_mask, KMemoryState state,
+ KMemoryPermission perm_mask, KMemoryPermission perm,
+ KMemoryAttribute attr_mask, KMemoryAttribute attr);
Common::PageTable& PageTableImpl() {
return page_table_impl;
@@ -91,6 +106,9 @@ private:
ResultCode InitializeMemoryLayout(VAddr start, VAddr end);
ResultCode MapPages(VAddr addr, const KPageLinkedList& page_linked_list,
KMemoryPermission perm);
+ ResultCode MapPages(VAddr* out_addr, std::size_t num_pages, std::size_t alignment,
+ PAddr phys_addr, bool is_pa_valid, VAddr region_start,
+ std::size_t region_num_pages, KMemoryState state, KMemoryPermission perm);
ResultCode UnmapPages(VAddr addr, const KPageLinkedList& page_linked_list);
bool IsRegionMapped(VAddr address, u64 size);
bool IsRegionContiguous(VAddr addr, u64 size) const;
@@ -105,6 +123,9 @@ private:
VAddr GetRegionAddress(KMemoryState state) const;
std::size_t GetRegionSize(KMemoryState state) const;
+ VAddr FindFreeArea(VAddr region_start, std::size_t region_num_pages, std::size_t num_pages,
+ std::size_t alignment, std::size_t offset, std::size_t guard_pages);
+
ResultCode CheckMemoryStateContiguous(std::size_t* out_blocks_needed, VAddr addr,
std::size_t size, KMemoryState state_mask,
KMemoryState state, KMemoryPermission perm_mask,
@@ -137,7 +158,7 @@ private:
return CheckMemoryState(nullptr, nullptr, nullptr, out_blocks_needed, addr, size,
state_mask, state, perm_mask, perm, attr_mask, attr, ignore_attr);
}
- ResultCode CheckMemoryState(VAddr addr, size_t size, KMemoryState state_mask,
+ ResultCode CheckMemoryState(VAddr addr, std::size_t size, KMemoryState state_mask,
KMemoryState state, KMemoryPermission perm_mask,
KMemoryPermission perm, KMemoryAttribute attr_mask,
KMemoryAttribute attr,
@@ -146,10 +167,37 @@ private:
attr_mask, attr, ignore_attr);
}
+ ResultCode LockMemoryAndOpen(KPageLinkedList* out_pg, PAddr* out_paddr, VAddr addr, size_t size,
+ KMemoryState state_mask, KMemoryState state,
+ KMemoryPermission perm_mask, KMemoryPermission perm,
+ KMemoryAttribute attr_mask, KMemoryAttribute attr,
+ KMemoryPermission new_perm, KMemoryAttribute lock_attr);
+ ResultCode UnlockMemory(VAddr addr, size_t size, KMemoryState state_mask, KMemoryState state,
+ KMemoryPermission perm_mask, KMemoryPermission perm,
+ KMemoryAttribute attr_mask, KMemoryAttribute attr,
+ KMemoryPermission new_perm, KMemoryAttribute lock_attr,
+ const KPageLinkedList* pg);
+
+ ResultCode MakePageGroup(KPageLinkedList& pg, VAddr addr, size_t num_pages);
+
bool IsLockedByCurrentThread() const {
return general_lock.IsLockedByCurrentThread();
}
+ bool IsHeapPhysicalAddress(const KMemoryLayout& layout, PAddr phys_addr) {
+ ASSERT(this->IsLockedByCurrentThread());
+
+ return layout.IsHeapPhysicalAddress(cached_physical_heap_region, phys_addr);
+ }
+
+ bool GetPhysicalAddressLocked(PAddr* out, VAddr virt_addr) const {
+ ASSERT(this->IsLockedByCurrentThread());
+
+ *out = GetPhysicalAddr(virt_addr);
+
+ return *out != 0;
+ }
+
mutable KLightLock general_lock;
mutable KLightLock map_physical_memory_lock;
@@ -210,7 +258,7 @@ public:
constexpr VAddr GetAliasCodeRegionSize() const {
return alias_code_region_end - alias_code_region_start;
}
- size_t GetNormalMemorySize() {
+ std::size_t GetNormalMemorySize() {
KScopedLightLock lk(general_lock);
return GetHeapSize() + mapped_physical_memory_size;
}
@@ -309,6 +357,7 @@ private:
bool is_aslr_enabled{};
u32 heap_fill_value{};
+ const KMemoryRegion* cached_physical_heap_region{};
KMemoryManager::Pool memory_pool{KMemoryManager::Pool::Application};
KMemoryManager::Direction allocation_option{KMemoryManager::Direction::FromFront};
diff --git a/src/core/hle/kernel/k_port.cpp b/src/core/hle/kernel/k_port.cpp
index a8ba09c4a..ceb98709f 100644
--- a/src/core/hle/kernel/k_port.cpp
+++ b/src/core/hle/kernel/k_port.cpp
@@ -57,7 +57,12 @@ ResultCode KPort::EnqueueSession(KServerSession* session) {
R_UNLESS(state == State::Normal, ResultPortClosed);
server.EnqueueSession(session);
- server.GetSessionRequestHandler()->ClientConnected(server.AcceptSession());
+
+ if (auto session_ptr = server.GetSessionRequestHandler().lock()) {
+ session_ptr->ClientConnected(server.AcceptSession());
+ } else {
+ UNREACHABLE();
+ }
return ResultSuccess;
}
diff --git a/src/core/hle/kernel/k_process.cpp b/src/core/hle/kernel/k_process.cpp
index 9233261cd..490e31fc7 100644
--- a/src/core/hle/kernel/k_process.cpp
+++ b/src/core/hle/kernel/k_process.cpp
@@ -13,7 +13,6 @@
#include "common/scope_exit.h"
#include "common/settings.h"
#include "core/core.h"
-#include "core/device_memory.h"
#include "core/file_sys/program_metadata.h"
#include "core/hle/kernel/code_set.h"
#include "core/hle/kernel/k_memory_block_manager.h"
@@ -24,7 +23,6 @@
#include "core/hle/kernel/k_scoped_resource_reservation.h"
#include "core/hle/kernel/k_shared_memory.h"
#include "core/hle/kernel/k_shared_memory_info.h"
-#include "core/hle/kernel/k_slab_heap.h"
#include "core/hle/kernel/k_thread.h"
#include "core/hle/kernel/kernel.h"
#include "core/hle/kernel/svc_results.h"
@@ -70,58 +68,6 @@ void SetupMainThread(Core::System& system, KProcess& owner_process, u32 priority
}
} // Anonymous namespace
-// Represents a page used for thread-local storage.
-//
-// Each TLS page contains slots that may be used by processes and threads.
-// Every process and thread is created with a slot in some arbitrary page
-// (whichever page happens to have an available slot).
-class TLSPage {
-public:
- static constexpr std::size_t num_slot_entries =
- Core::Memory::PAGE_SIZE / Core::Memory::TLS_ENTRY_SIZE;
-
- explicit TLSPage(VAddr address) : base_address{address} {}
-
- bool HasAvailableSlots() const {
- return !is_slot_used.all();
- }
-
- VAddr GetBaseAddress() const {
- return base_address;
- }
-
- std::optional<VAddr> ReserveSlot() {
- for (std::size_t i = 0; i < is_slot_used.size(); i++) {
- if (is_slot_used[i]) {
- continue;
- }
-
- is_slot_used[i] = true;
- return base_address + (i * Core::Memory::TLS_ENTRY_SIZE);
- }
-
- return std::nullopt;
- }
-
- void ReleaseSlot(VAddr address) {
- // Ensure that all given addresses are consistent with how TLS pages
- // are intended to be used when releasing slots.
- ASSERT(IsWithinPage(address));
- ASSERT((address % Core::Memory::TLS_ENTRY_SIZE) == 0);
-
- const std::size_t index = (address - base_address) / Core::Memory::TLS_ENTRY_SIZE;
- is_slot_used[index] = false;
- }
-
-private:
- bool IsWithinPage(VAddr address) const {
- return base_address <= address && address < base_address + Core::Memory::PAGE_SIZE;
- }
-
- VAddr base_address;
- std::bitset<num_slot_entries> is_slot_used;
-};
-
ResultCode KProcess::Initialize(KProcess* process, Core::System& system, std::string process_name,
ProcessType type, KResourceLimit* res_limit) {
auto& kernel = system.Kernel();
@@ -404,7 +350,7 @@ ResultCode KProcess::LoadFromMetadata(const FileSys::ProgramMetadata& metadata,
}
// Create TLS region
- tls_region_address = CreateTLSRegion();
+ R_TRY(this->CreateThreadLocalRegion(std::addressof(tls_region_address)));
memory_reservation.Commit();
return handle_table.Initialize(capabilities.GetHandleTableSize());
@@ -444,7 +390,7 @@ void KProcess::PrepareForTermination() {
stop_threads(kernel.System().GlobalSchedulerContext().GetThreadList());
- FreeTLSRegion(tls_region_address);
+ this->DeleteThreadLocalRegion(tls_region_address);
tls_region_address = 0;
if (resource_limit) {
@@ -456,9 +402,6 @@ void KProcess::PrepareForTermination() {
}
void KProcess::Finalize() {
- // Finalize the handle table and close any open handles.
- handle_table.Finalize();
-
// Free all shared memory infos.
{
auto it = shared_memory_list.begin();
@@ -483,67 +426,110 @@ void KProcess::Finalize() {
resource_limit = nullptr;
}
+ // Finalize the page table.
+ page_table.reset();
+
// Perform inherited finalization.
KAutoObjectWithSlabHeapAndContainer<KProcess, KWorkerTask>::Finalize();
}
-/**
- * Attempts to find a TLS page that contains a free slot for
- * use by a thread.
- *
- * @returns If a page with an available slot is found, then an iterator
- * pointing to the page is returned. Otherwise the end iterator
- * is returned instead.
- */
-static auto FindTLSPageWithAvailableSlots(std::vector<TLSPage>& tls_pages) {
- return std::find_if(tls_pages.begin(), tls_pages.end(),
- [](const auto& page) { return page.HasAvailableSlots(); });
-}
+ResultCode KProcess::CreateThreadLocalRegion(VAddr* out) {
+ KThreadLocalPage* tlp = nullptr;
+ VAddr tlr = 0;
-VAddr KProcess::CreateTLSRegion() {
- KScopedSchedulerLock lock(kernel);
- if (auto tls_page_iter{FindTLSPageWithAvailableSlots(tls_pages)};
- tls_page_iter != tls_pages.cend()) {
- return *tls_page_iter->ReserveSlot();
- }
+ // See if we can get a region from a partially used TLP.
+ {
+ KScopedSchedulerLock sl{kernel};
- Page* const tls_page_ptr{kernel.GetUserSlabHeapPages().Allocate()};
- ASSERT(tls_page_ptr);
+ if (auto it = partially_used_tlp_tree.begin(); it != partially_used_tlp_tree.end()) {
+ tlr = it->Reserve();
+ ASSERT(tlr != 0);
- const VAddr start{page_table->GetKernelMapRegionStart()};
- const VAddr size{page_table->GetKernelMapRegionEnd() - start};
- const PAddr tls_map_addr{kernel.System().DeviceMemory().GetPhysicalAddr(tls_page_ptr)};
- const VAddr tls_page_addr{page_table
- ->AllocateAndMapMemory(1, PageSize, true, start, size / PageSize,
- KMemoryState::ThreadLocal,
- KMemoryPermission::UserReadWrite,
- tls_map_addr)
- .ValueOr(0)};
+ if (it->IsAllUsed()) {
+ tlp = std::addressof(*it);
+ partially_used_tlp_tree.erase(it);
+ fully_used_tlp_tree.insert(*tlp);
+ }
- ASSERT(tls_page_addr);
+ *out = tlr;
+ return ResultSuccess;
+ }
+ }
+
+ // Allocate a new page.
+ tlp = KThreadLocalPage::Allocate(kernel);
+ R_UNLESS(tlp != nullptr, ResultOutOfMemory);
+ auto tlp_guard = SCOPE_GUARD({ KThreadLocalPage::Free(kernel, tlp); });
+
+ // Initialize the new page.
+ R_TRY(tlp->Initialize(kernel, this));
- std::memset(tls_page_ptr, 0, PageSize);
- tls_pages.emplace_back(tls_page_addr);
+ // Reserve a TLR.
+ tlr = tlp->Reserve();
+ ASSERT(tlr != 0);
- const auto reserve_result{tls_pages.back().ReserveSlot()};
- ASSERT(reserve_result.has_value());
+ // Insert into our tree.
+ {
+ KScopedSchedulerLock sl{kernel};
+ if (tlp->IsAllUsed()) {
+ fully_used_tlp_tree.insert(*tlp);
+ } else {
+ partially_used_tlp_tree.insert(*tlp);
+ }
+ }
- return *reserve_result;
+ // We succeeded!
+ tlp_guard.Cancel();
+ *out = tlr;
+ return ResultSuccess;
}
-void KProcess::FreeTLSRegion(VAddr tls_address) {
- KScopedSchedulerLock lock(kernel);
- const VAddr aligned_address = Common::AlignDown(tls_address, Core::Memory::PAGE_SIZE);
- auto iter =
- std::find_if(tls_pages.begin(), tls_pages.end(), [aligned_address](const auto& page) {
- return page.GetBaseAddress() == aligned_address;
- });
+ResultCode KProcess::DeleteThreadLocalRegion(VAddr addr) {
+ KThreadLocalPage* page_to_free = nullptr;
- // Something has gone very wrong if we're freeing a region
- // with no actual page available.
- ASSERT(iter != tls_pages.cend());
+ // Release the region.
+ {
+ KScopedSchedulerLock sl{kernel};
+
+ // Try to find the page in the partially used list.
+ auto it = partially_used_tlp_tree.find_key(Common::AlignDown(addr, PageSize));
+ if (it == partially_used_tlp_tree.end()) {
+ // If we don't find it, it has to be in the fully used list.
+ it = fully_used_tlp_tree.find_key(Common::AlignDown(addr, PageSize));
+ R_UNLESS(it != fully_used_tlp_tree.end(), ResultInvalidAddress);
+
+ // Release the region.
+ it->Release(addr);
+
+ // Move the page out of the fully used list.
+ KThreadLocalPage* tlp = std::addressof(*it);
+ fully_used_tlp_tree.erase(it);
+ if (tlp->IsAllFree()) {
+ page_to_free = tlp;
+ } else {
+ partially_used_tlp_tree.insert(*tlp);
+ }
+ } else {
+ // Release the region.
+ it->Release(addr);
+
+ // Handle the all-free case.
+ KThreadLocalPage* tlp = std::addressof(*it);
+ if (tlp->IsAllFree()) {
+ partially_used_tlp_tree.erase(it);
+ page_to_free = tlp;
+ }
+ }
+ }
+
+ // If we should free the page it was in, do so.
+ if (page_to_free != nullptr) {
+ page_to_free->Finalize();
- iter->ReleaseSlot(tls_address);
+ KThreadLocalPage::Free(kernel, page_to_free);
+ }
+
+ return ResultSuccess;
}
void KProcess::LoadModule(CodeSet code_set, VAddr base_addr) {
diff --git a/src/core/hle/kernel/k_process.h b/src/core/hle/kernel/k_process.h
index cf1b67428..9f171e3da 100644
--- a/src/core/hle/kernel/k_process.h
+++ b/src/core/hle/kernel/k_process.h
@@ -8,13 +8,13 @@
#include <cstddef>
#include <list>
#include <string>
-#include <vector>
#include "common/common_types.h"
#include "core/hle/kernel/k_address_arbiter.h"
#include "core/hle/kernel/k_auto_object.h"
#include "core/hle/kernel/k_condition_variable.h"
#include "core/hle/kernel/k_handle_table.h"
#include "core/hle/kernel/k_synchronization_object.h"
+#include "core/hle/kernel/k_thread_local_page.h"
#include "core/hle/kernel/k_worker_task.h"
#include "core/hle/kernel/process_capability.h"
#include "core/hle/kernel/slab_helpers.h"
@@ -362,10 +362,10 @@ public:
// Thread-local storage management
// Marks the next available region as used and returns the address of the slot.
- [[nodiscard]] VAddr CreateTLSRegion();
+ [[nodiscard]] ResultCode CreateThreadLocalRegion(VAddr* out);
// Frees a used TLS slot identified by the given address
- void FreeTLSRegion(VAddr tls_address);
+ ResultCode DeleteThreadLocalRegion(VAddr addr);
private:
void PinThread(s32 core_id, KThread* thread) {
@@ -413,13 +413,6 @@ private:
/// The ideal CPU core for this process, threads are scheduled on this core by default.
u8 ideal_core = 0;
- /// The Thread Local Storage area is allocated as processes create threads,
- /// each TLS area is 0x200 bytes, so one page (0x1000) is split up in 8 parts, and each part
- /// holds the TLS for a specific thread. This vector contains which parts are in use for each
- /// page as a bitmask.
- /// This vector will grow as more pages are allocated for new threads.
- std::vector<TLSPage> tls_pages;
-
/// Contains the parsed process capability descriptors.
ProcessCapabilities capabilities;
@@ -429,7 +422,7 @@ private:
bool is_64bit_process = true;
/// Total running time for the process in ticks.
- u64 total_process_running_time_ticks = 0;
+ std::atomic<u64> total_process_running_time_ticks = 0;
/// Per-process handle table for storing created object handles in.
KHandleTable handle_table;
@@ -482,6 +475,12 @@ private:
KThread* exception_thread{};
KLightLock state_lock;
+
+ using TLPTree =
+ Common::IntrusiveRedBlackTreeBaseTraits<KThreadLocalPage>::TreeType<KThreadLocalPage>;
+ using TLPIterator = TLPTree::iterator;
+ TLPTree fully_used_tlp_tree;
+ TLPTree partially_used_tlp_tree;
};
} // namespace Kernel
diff --git a/src/core/hle/kernel/k_scheduler.cpp b/src/core/hle/kernel/k_scheduler.cpp
index c96520828..6c0bb1672 100644
--- a/src/core/hle/kernel/k_scheduler.cpp
+++ b/src/core/hle/kernel/k_scheduler.cpp
@@ -22,7 +22,6 @@
#include "core/hle/kernel/k_thread.h"
#include "core/hle/kernel/kernel.h"
#include "core/hle/kernel/physical_core.h"
-#include "core/hle/kernel/time_manager.h"
namespace Kernel {
diff --git a/src/core/hle/kernel/k_scheduler_lock.h b/src/core/hle/kernel/k_scheduler_lock.h
index 93c47f1b1..016e0a818 100644
--- a/src/core/hle/kernel/k_scheduler_lock.h
+++ b/src/core/hle/kernel/k_scheduler_lock.h
@@ -4,6 +4,7 @@
#pragma once
+#include <atomic>
#include "common/assert.h"
#include "core/hle/kernel/k_spin_lock.h"
#include "core/hle/kernel/k_thread.h"
@@ -75,7 +76,7 @@ private:
KernelCore& kernel;
KAlignedSpinLock spin_lock{};
s32 lock_count{};
- KThread* owner_thread{};
+ std::atomic<KThread*> owner_thread{};
};
} // namespace Kernel
diff --git a/src/core/hle/kernel/k_server_port.cpp b/src/core/hle/kernel/k_server_port.cpp
index 433fc98e1..e66c0c992 100644
--- a/src/core/hle/kernel/k_server_port.cpp
+++ b/src/core/hle/kernel/k_server_port.cpp
@@ -62,6 +62,12 @@ void KServerPort::Destroy() {
// Close our reference to our parent.
parent->Close();
+
+ // Release host emulation members.
+ session_handler.reset();
+
+ // Ensure that the global list tracking server objects does not hold on to a reference.
+ kernel.UnregisterServerObject(this);
}
bool KServerPort::IsSignaled() const {
diff --git a/src/core/hle/kernel/k_server_port.h b/src/core/hle/kernel/k_server_port.h
index 6302d5e61..2185736be 100644
--- a/src/core/hle/kernel/k_server_port.h
+++ b/src/core/hle/kernel/k_server_port.h
@@ -30,11 +30,11 @@ public:
/// Whether or not this server port has an HLE handler available.
bool HasSessionRequestHandler() const {
- return session_handler != nullptr;
+ return !session_handler.expired();
}
/// Gets the HLE handler for this port.
- SessionRequestHandlerPtr GetSessionRequestHandler() const {
+ SessionRequestHandlerWeakPtr GetSessionRequestHandler() const {
return session_handler;
}
@@ -42,7 +42,7 @@ public:
* Sets the HLE handler template for the port. ServerSessions crated by connecting to this port
* will inherit a reference to this handler.
*/
- void SetSessionHandler(SessionRequestHandlerPtr&& handler) {
+ void SetSessionHandler(SessionRequestHandlerWeakPtr&& handler) {
session_handler = std::move(handler);
}
@@ -66,7 +66,7 @@ private:
void CleanupSessions();
SessionList session_list;
- SessionRequestHandlerPtr session_handler;
+ SessionRequestHandlerWeakPtr session_handler;
KPort* parent{};
};
diff --git a/src/core/hle/kernel/k_server_session.cpp b/src/core/hle/kernel/k_server_session.cpp
index 4d94eb9cf..7ac2ef254 100644
--- a/src/core/hle/kernel/k_server_session.cpp
+++ b/src/core/hle/kernel/k_server_session.cpp
@@ -27,10 +27,7 @@ namespace Kernel {
KServerSession::KServerSession(KernelCore& kernel_) : KSynchronizationObject{kernel_} {}
-KServerSession::~KServerSession() {
- // Ensure that the global list tracking server sessions does not hold on to a reference.
- kernel.UnregisterServerSession(this);
-}
+KServerSession::~KServerSession() = default;
void KServerSession::Initialize(KSession* parent_session_, std::string&& name_,
std::shared_ptr<SessionRequestManager> manager_) {
@@ -49,6 +46,12 @@ void KServerSession::Destroy() {
parent->OnServerClosed();
parent->Close();
+
+ // Release host emulation members.
+ manager.reset();
+
+ // Ensure that the global list tracking server objects does not hold on to a reference.
+ kernel.UnregisterServerObject(this);
}
void KServerSession::OnClientClosed() {
@@ -98,7 +101,12 @@ ResultCode KServerSession::HandleDomainSyncRequest(Kernel::HLERequestContext& co
UNREACHABLE();
return ResultSuccess; // Ignore error if asserts are off
}
- return manager->DomainHandler(object_id - 1)->HandleSyncRequest(*this, context);
+ if (auto strong_ptr = manager->DomainHandler(object_id - 1).lock()) {
+ return strong_ptr->HandleSyncRequest(*this, context);
+ } else {
+ UNREACHABLE();
+ return ResultSuccess;
+ }
case IPC::DomainMessageHeader::CommandType::CloseVirtualHandle: {
LOG_DEBUG(IPC, "CloseVirtualHandle, object_id=0x{:08X}", object_id);
diff --git a/src/core/hle/kernel/k_slab_heap.h b/src/core/hle/kernel/k_slab_heap.h
index 05c0bec9c..5690cc757 100644
--- a/src/core/hle/kernel/k_slab_heap.h
+++ b/src/core/hle/kernel/k_slab_heap.h
@@ -16,39 +16,34 @@ class KernelCore;
namespace impl {
-class KSlabHeapImpl final {
-public:
+class KSlabHeapImpl {
YUZU_NON_COPYABLE(KSlabHeapImpl);
YUZU_NON_MOVEABLE(KSlabHeapImpl);
+public:
struct Node {
Node* next{};
};
+public:
constexpr KSlabHeapImpl() = default;
- constexpr ~KSlabHeapImpl() = default;
- void Initialize(std::size_t size) {
- ASSERT(head == nullptr);
- obj_size = size;
- }
-
- constexpr std::size_t GetObjectSize() const {
- return obj_size;
+ void Initialize() {
+ ASSERT(m_head == nullptr);
}
Node* GetHead() const {
- return head;
+ return m_head;
}
void* Allocate() {
- Node* ret = head.load();
+ Node* ret = m_head.load();
do {
if (ret == nullptr) {
break;
}
- } while (!head.compare_exchange_weak(ret, ret->next));
+ } while (!m_head.compare_exchange_weak(ret, ret->next));
return ret;
}
@@ -56,170 +51,157 @@ public:
void Free(void* obj) {
Node* node = static_cast<Node*>(obj);
- Node* cur_head = head.load();
+ Node* cur_head = m_head.load();
do {
node->next = cur_head;
- } while (!head.compare_exchange_weak(cur_head, node));
+ } while (!m_head.compare_exchange_weak(cur_head, node));
}
private:
- std::atomic<Node*> head{};
- std::size_t obj_size{};
+ std::atomic<Node*> m_head{};
};
} // namespace impl
-class KSlabHeapBase {
-public:
+template <bool SupportDynamicExpansion>
+class KSlabHeapBase : protected impl::KSlabHeapImpl {
YUZU_NON_COPYABLE(KSlabHeapBase);
YUZU_NON_MOVEABLE(KSlabHeapBase);
- constexpr KSlabHeapBase() = default;
- constexpr ~KSlabHeapBase() = default;
+private:
+ size_t m_obj_size{};
+ uintptr_t m_peak{};
+ uintptr_t m_start{};
+ uintptr_t m_end{};
- constexpr bool Contains(uintptr_t addr) const {
- return start <= addr && addr < end;
- }
+private:
+ void UpdatePeakImpl(uintptr_t obj) {
+ static_assert(std::atomic_ref<uintptr_t>::is_always_lock_free);
+ std::atomic_ref<uintptr_t> peak_ref(m_peak);
- constexpr std::size_t GetSlabHeapSize() const {
- return (end - start) / GetObjectSize();
+ const uintptr_t alloc_peak = obj + this->GetObjectSize();
+ uintptr_t cur_peak = m_peak;
+ do {
+ if (alloc_peak <= cur_peak) {
+ break;
+ }
+ } while (!peak_ref.compare_exchange_strong(cur_peak, alloc_peak));
}
- constexpr std::size_t GetObjectSize() const {
- return impl.GetObjectSize();
- }
+public:
+ constexpr KSlabHeapBase() = default;
- constexpr uintptr_t GetSlabHeapAddress() const {
- return start;
+ bool Contains(uintptr_t address) const {
+ return m_start <= address && address < m_end;
}
- std::size_t GetObjectIndexImpl(const void* obj) const {
- return (reinterpret_cast<uintptr_t>(obj) - start) / GetObjectSize();
+ void Initialize(size_t obj_size, void* memory, size_t memory_size) {
+ // Ensure we don't initialize a slab using null memory.
+ ASSERT(memory != nullptr);
+
+ // Set our object size.
+ m_obj_size = obj_size;
+
+ // Initialize the base allocator.
+ KSlabHeapImpl::Initialize();
+
+ // Set our tracking variables.
+ const size_t num_obj = (memory_size / obj_size);
+ m_start = reinterpret_cast<uintptr_t>(memory);
+ m_end = m_start + num_obj * obj_size;
+ m_peak = m_start;
+
+ // Free the objects.
+ u8* cur = reinterpret_cast<u8*>(m_end);
+
+ for (size_t i = 0; i < num_obj; i++) {
+ cur -= obj_size;
+ KSlabHeapImpl::Free(cur);
+ }
}
- std::size_t GetPeakIndex() const {
- return GetObjectIndexImpl(reinterpret_cast<const void*>(peak));
+ size_t GetSlabHeapSize() const {
+ return (m_end - m_start) / this->GetObjectSize();
}
- void* AllocateImpl() {
- return impl.Allocate();
+ size_t GetObjectSize() const {
+ return m_obj_size;
}
- void FreeImpl(void* obj) {
- // Don't allow freeing an object that wasn't allocated from this heap
- ASSERT(Contains(reinterpret_cast<uintptr_t>(obj)));
+ void* Allocate() {
+ void* obj = KSlabHeapImpl::Allocate();
- impl.Free(obj);
+ return obj;
}
- void InitializeImpl(std::size_t obj_size, void* memory, std::size_t memory_size) {
- // Ensure we don't initialize a slab using null memory
- ASSERT(memory != nullptr);
-
- // Initialize the base allocator
- impl.Initialize(obj_size);
+ void Free(void* obj) {
+ // Don't allow freeing an object that wasn't allocated from this heap.
+ const bool contained = this->Contains(reinterpret_cast<uintptr_t>(obj));
+ ASSERT(contained);
+ KSlabHeapImpl::Free(obj);
+ }
- // Set our tracking variables
- const std::size_t num_obj = (memory_size / obj_size);
- start = reinterpret_cast<uintptr_t>(memory);
- end = start + num_obj * obj_size;
- peak = start;
+ size_t GetObjectIndex(const void* obj) const {
+ if constexpr (SupportDynamicExpansion) {
+ if (!this->Contains(reinterpret_cast<uintptr_t>(obj))) {
+ return std::numeric_limits<size_t>::max();
+ }
+ }
- // Free the objects
- u8* cur = reinterpret_cast<u8*>(end);
+ return (reinterpret_cast<uintptr_t>(obj) - m_start) / this->GetObjectSize();
+ }
- for (std::size_t i{}; i < num_obj; i++) {
- cur -= obj_size;
- impl.Free(cur);
- }
+ size_t GetPeakIndex() const {
+ return this->GetObjectIndex(reinterpret_cast<const void*>(m_peak));
}
-private:
- using Impl = impl::KSlabHeapImpl;
+ uintptr_t GetSlabHeapAddress() const {
+ return m_start;
+ }
- Impl impl;
- uintptr_t peak{};
- uintptr_t start{};
- uintptr_t end{};
+ size_t GetNumRemaining() const {
+ // Only calculate the number of remaining objects under debug configuration.
+ return 0;
+ }
};
template <typename T>
-class KSlabHeap final : public KSlabHeapBase {
-public:
- enum class AllocationType {
- Host,
- Guest,
- };
+class KSlabHeap final : public KSlabHeapBase<false> {
+private:
+ using BaseHeap = KSlabHeapBase<false>;
- explicit constexpr KSlabHeap(AllocationType allocation_type_ = AllocationType::Host)
- : KSlabHeapBase(), allocation_type{allocation_type_} {}
+public:
+ constexpr KSlabHeap() = default;
- void Initialize(void* memory, std::size_t memory_size) {
- if (allocation_type == AllocationType::Guest) {
- InitializeImpl(sizeof(T), memory, memory_size);
- }
+ void Initialize(void* memory, size_t memory_size) {
+ BaseHeap::Initialize(sizeof(T), memory, memory_size);
}
T* Allocate() {
- switch (allocation_type) {
- case AllocationType::Host:
- // Fallback for cases where we do not yet support allocating guest memory from the slab
- // heap, such as for kernel memory regions.
- return new T;
-
- case AllocationType::Guest:
- T* obj = static_cast<T*>(AllocateImpl());
- if (obj != nullptr) {
- new (obj) T();
- }
- return obj;
- }
+ T* obj = static_cast<T*>(BaseHeap::Allocate());
- UNREACHABLE_MSG("Invalid AllocationType {}", allocation_type);
- return nullptr;
+ if (obj != nullptr) [[likely]] {
+ std::construct_at(obj);
+ }
+ return obj;
}
- T* AllocateWithKernel(KernelCore& kernel) {
- switch (allocation_type) {
- case AllocationType::Host:
- // Fallback for cases where we do not yet support allocating guest memory from the slab
- // heap, such as for kernel memory regions.
- return new T(kernel);
+ T* Allocate(KernelCore& kernel) {
+ T* obj = static_cast<T*>(BaseHeap::Allocate());
- case AllocationType::Guest:
- T* obj = static_cast<T*>(AllocateImpl());
- if (obj != nullptr) {
- new (obj) T(kernel);
- }
- return obj;
+ if (obj != nullptr) [[likely]] {
+ std::construct_at(obj, kernel);
}
-
- UNREACHABLE_MSG("Invalid AllocationType {}", allocation_type);
- return nullptr;
+ return obj;
}
void Free(T* obj) {
- switch (allocation_type) {
- case AllocationType::Host:
- // Fallback for cases where we do not yet support allocating guest memory from the slab
- // heap, such as for kernel memory regions.
- delete obj;
- return;
-
- case AllocationType::Guest:
- FreeImpl(obj);
- return;
- }
-
- UNREACHABLE_MSG("Invalid AllocationType {}", allocation_type);
+ BaseHeap::Free(obj);
}
- constexpr std::size_t GetObjectIndex(const T* obj) const {
- return GetObjectIndexImpl(obj);
+ size_t GetObjectIndex(const T* obj) const {
+ return BaseHeap::GetObjectIndex(obj);
}
-
-private:
- const AllocationType allocation_type;
};
} // namespace Kernel
diff --git a/src/core/hle/kernel/k_thread.cpp b/src/core/hle/kernel/k_thread.cpp
index de3ffe0c7..d3bb1c871 100644
--- a/src/core/hle/kernel/k_thread.cpp
+++ b/src/core/hle/kernel/k_thread.cpp
@@ -14,9 +14,7 @@
#include "common/common_types.h"
#include "common/fiber.h"
#include "common/logging/log.h"
-#include "common/scope_exit.h"
#include "common/settings.h"
-#include "common/thread_queue_list.h"
#include "core/core.h"
#include "core/cpu_manager.h"
#include "core/hardware_properties.h"
@@ -33,7 +31,6 @@
#include "core/hle/kernel/k_worker_task_manager.h"
#include "core/hle/kernel/kernel.h"
#include "core/hle/kernel/svc_results.h"
-#include "core/hle/kernel/time_manager.h"
#include "core/hle/result.h"
#include "core/memory.h"
@@ -210,7 +207,7 @@ ResultCode KThread::Initialize(KThreadFunction func, uintptr_t arg, VAddr user_s
if (owner != nullptr) {
// Setup the TLS, if needed.
if (type == ThreadType::User) {
- tls_address = owner->CreateTLSRegion();
+ R_TRY(owner->CreateThreadLocalRegion(std::addressof(tls_address)));
}
parent = owner;
@@ -305,7 +302,7 @@ void KThread::Finalize() {
// If the thread has a local region, delete it.
if (tls_address != 0) {
- parent->FreeTLSRegion(tls_address);
+ ASSERT(parent->DeleteThreadLocalRegion(tls_address).IsSuccess());
}
// Release any waiters.
@@ -326,6 +323,9 @@ void KThread::Finalize() {
}
}
+ // Release host emulation members.
+ host_context.reset();
+
// Perform inherited finalization.
KSynchronizationObject::Finalize();
}
@@ -723,7 +723,7 @@ void KThread::UpdateState() {
ASSERT(kernel.GlobalSchedulerContext().IsLocked());
// Set our suspend flags in state.
- const auto old_state = thread_state;
+ const ThreadState old_state = thread_state;
const auto new_state =
static_cast<ThreadState>(this->GetSuspendFlags()) | (old_state & ThreadState::Mask);
thread_state = new_state;
@@ -738,7 +738,7 @@ void KThread::Continue() {
ASSERT(kernel.GlobalSchedulerContext().IsLocked());
// Clear our suspend flags in state.
- const auto old_state = thread_state;
+ const ThreadState old_state = thread_state;
thread_state = old_state & ThreadState::Mask;
// Note the state change in scheduler.
diff --git a/src/core/hle/kernel/k_thread.h b/src/core/hle/kernel/k_thread.h
index d058db62c..d0fd85130 100644
--- a/src/core/hle/kernel/k_thread.h
+++ b/src/core/hle/kernel/k_thread.h
@@ -5,6 +5,7 @@
#pragma once
#include <array>
+#include <atomic>
#include <span>
#include <string>
#include <utility>
@@ -656,7 +657,7 @@ private:
static_assert(sizeof(SyncObjectBuffer::sync_objects) == sizeof(SyncObjectBuffer::handles));
struct ConditionVariableComparator {
- struct LightCompareType {
+ struct RedBlackKeyType {
u64 cv_key{};
s32 priority{};
@@ -672,8 +673,8 @@ private:
template <typename T>
requires(
std::same_as<T, KThread> ||
- std::same_as<T, LightCompareType>) static constexpr int Compare(const T& lhs,
- const KThread& rhs) {
+ std::same_as<T, RedBlackKeyType>) static constexpr int Compare(const T& lhs,
+ const KThread& rhs) {
const u64 l_key = lhs.GetConditionVariableKey();
const u64 r_key = rhs.GetConditionVariableKey();
@@ -751,7 +752,7 @@ private:
KAffinityMask original_physical_affinity_mask{};
s32 original_physical_ideal_core_id{};
s32 num_core_migration_disables{};
- ThreadState thread_state{};
+ std::atomic<ThreadState> thread_state{};
std::atomic<bool> termination_requested{};
bool wait_cancelled{};
bool cancellable{};
diff --git a/src/core/hle/kernel/k_thread_local_page.cpp b/src/core/hle/kernel/k_thread_local_page.cpp
new file mode 100644
index 000000000..3fb277eba
--- /dev/null
+++ b/src/core/hle/kernel/k_thread_local_page.cpp
@@ -0,0 +1,68 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "common/scope_exit.h"
+#include "core/core.h"
+
+#include "core/hle/kernel/k_memory_block.h"
+#include "core/hle/kernel/k_page_buffer.h"
+#include "core/hle/kernel/k_page_table.h"
+#include "core/hle/kernel/k_process.h"
+#include "core/hle/kernel/k_thread_local_page.h"
+#include "core/hle/kernel/kernel.h"
+
+namespace Kernel {
+
+ResultCode KThreadLocalPage::Initialize(KernelCore& kernel, KProcess* process) {
+ // Set that this process owns us.
+ m_owner = process;
+ m_kernel = &kernel;
+
+ // Allocate a new page.
+ KPageBuffer* page_buf = KPageBuffer::Allocate(kernel);
+ R_UNLESS(page_buf != nullptr, ResultOutOfMemory);
+ auto page_buf_guard = SCOPE_GUARD({ KPageBuffer::Free(kernel, page_buf); });
+
+ // Map the address in.
+ const auto phys_addr = kernel.System().DeviceMemory().GetPhysicalAddr(page_buf);
+ R_TRY(m_owner->PageTable().MapPages(std::addressof(m_virt_addr), 1, PageSize, phys_addr,
+ KMemoryState::ThreadLocal,
+ KMemoryPermission::UserReadWrite));
+
+ // We succeeded.
+ page_buf_guard.Cancel();
+
+ return ResultSuccess;
+}
+
+ResultCode KThreadLocalPage::Finalize() {
+ // Get the physical address of the page.
+ const PAddr phys_addr = m_owner->PageTable().GetPhysicalAddr(m_virt_addr);
+ ASSERT(phys_addr);
+
+ // Unmap the page.
+ R_TRY(m_owner->PageTable().UnmapPages(this->GetAddress(), 1, KMemoryState::ThreadLocal));
+
+ // Free the page.
+ KPageBuffer::Free(*m_kernel, KPageBuffer::FromPhysicalAddress(m_kernel->System(), phys_addr));
+
+ return ResultSuccess;
+}
+
+VAddr KThreadLocalPage::Reserve() {
+ for (size_t i = 0; i < m_is_region_free.size(); i++) {
+ if (m_is_region_free[i]) {
+ m_is_region_free[i] = false;
+ return this->GetRegionAddress(i);
+ }
+ }
+
+ return 0;
+}
+
+void KThreadLocalPage::Release(VAddr addr) {
+ m_is_region_free[this->GetRegionIndex(addr)] = true;
+}
+
+} // namespace Kernel
diff --git a/src/core/hle/kernel/k_thread_local_page.h b/src/core/hle/kernel/k_thread_local_page.h
new file mode 100644
index 000000000..74b565a71
--- /dev/null
+++ b/src/core/hle/kernel/k_thread_local_page.h
@@ -0,0 +1,111 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <algorithm>
+#include <array>
+
+#include "common/alignment.h"
+#include "common/assert.h"
+#include "common/common_types.h"
+#include "common/intrusive_red_black_tree.h"
+#include "core/hle/kernel/memory_types.h"
+#include "core/hle/kernel/slab_helpers.h"
+#include "core/hle/result.h"
+
+namespace Kernel {
+
+class KernelCore;
+class KProcess;
+
+class KThreadLocalPage final : public Common::IntrusiveRedBlackTreeBaseNode<KThreadLocalPage>,
+ public KSlabAllocated<KThreadLocalPage> {
+public:
+ static constexpr size_t RegionsPerPage = PageSize / Svc::ThreadLocalRegionSize;
+ static_assert(RegionsPerPage > 0);
+
+public:
+ constexpr explicit KThreadLocalPage(VAddr addr = {}) : m_virt_addr(addr) {
+ m_is_region_free.fill(true);
+ }
+
+ constexpr VAddr GetAddress() const {
+ return m_virt_addr;
+ }
+
+ ResultCode Initialize(KernelCore& kernel, KProcess* process);
+ ResultCode Finalize();
+
+ VAddr Reserve();
+ void Release(VAddr addr);
+
+ bool IsAllUsed() const {
+ return std::ranges::all_of(m_is_region_free.begin(), m_is_region_free.end(),
+ [](bool is_free) { return !is_free; });
+ }
+
+ bool IsAllFree() const {
+ return std::ranges::all_of(m_is_region_free.begin(), m_is_region_free.end(),
+ [](bool is_free) { return is_free; });
+ }
+
+ bool IsAnyUsed() const {
+ return !this->IsAllFree();
+ }
+
+ bool IsAnyFree() const {
+ return !this->IsAllUsed();
+ }
+
+public:
+ using RedBlackKeyType = VAddr;
+
+ static constexpr RedBlackKeyType GetRedBlackKey(const RedBlackKeyType& v) {
+ return v;
+ }
+ static constexpr RedBlackKeyType GetRedBlackKey(const KThreadLocalPage& v) {
+ return v.GetAddress();
+ }
+
+ template <typename T>
+ requires(std::same_as<T, KThreadLocalPage> ||
+ std::same_as<T, RedBlackKeyType>) static constexpr int Compare(const T& lhs,
+ const KThreadLocalPage&
+ rhs) {
+ const VAddr lval = GetRedBlackKey(lhs);
+ const VAddr rval = GetRedBlackKey(rhs);
+
+ if (lval < rval) {
+ return -1;
+ } else if (lval == rval) {
+ return 0;
+ } else {
+ return 1;
+ }
+ }
+
+private:
+ constexpr VAddr GetRegionAddress(size_t i) const {
+ return this->GetAddress() + i * Svc::ThreadLocalRegionSize;
+ }
+
+ constexpr bool Contains(VAddr addr) const {
+ return this->GetAddress() <= addr && addr < this->GetAddress() + PageSize;
+ }
+
+ constexpr size_t GetRegionIndex(VAddr addr) const {
+ ASSERT(Common::IsAligned(addr, Svc::ThreadLocalRegionSize));
+ ASSERT(this->Contains(addr));
+ return (addr - this->GetAddress()) / Svc::ThreadLocalRegionSize;
+ }
+
+private:
+ VAddr m_virt_addr{};
+ KProcess* m_owner{};
+ KernelCore* m_kernel{};
+ std::array<bool, RegionsPerPage> m_is_region_free{};
+};
+
+} // namespace Kernel
diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp
index 71bd466cf..d840d44e6 100644
--- a/src/core/hle/kernel/kernel.cpp
+++ b/src/core/hle/kernel/kernel.cpp
@@ -22,9 +22,7 @@
#include "core/arm/exclusive_monitor.h"
#include "core/core.h"
#include "core/core_timing.h"
-#include "core/core_timing_util.h"
#include "core/cpu_manager.h"
-#include "core/device_memory.h"
#include "core/hardware_properties.h"
#include "core/hle/kernel/init/init_slab_setup.h"
#include "core/hle/kernel/k_client_port.h"
@@ -35,7 +33,6 @@
#include "core/hle/kernel/k_resource_limit.h"
#include "core/hle/kernel/k_scheduler.h"
#include "core/hle/kernel/k_shared_memory.h"
-#include "core/hle/kernel/k_slab_heap.h"
#include "core/hle/kernel/k_thread.h"
#include "core/hle/kernel/k_worker_task_manager.h"
#include "core/hle/kernel/kernel.h"
@@ -52,7 +49,7 @@ namespace Kernel {
struct KernelCore::Impl {
explicit Impl(Core::System& system_, KernelCore& kernel_)
- : time_manager{system_}, object_list_container{kernel_},
+ : time_manager{system_},
service_threads_manager{1, "yuzu:ServiceThreadsManager"}, system{system_} {}
void SetMulticore(bool is_multi) {
@@ -60,9 +57,11 @@ struct KernelCore::Impl {
}
void Initialize(KernelCore& kernel) {
+ global_object_list_container = std::make_unique<KAutoObjectWithListContainer>(kernel);
global_scheduler_context = std::make_unique<Kernel::GlobalSchedulerContext>(kernel);
global_handle_table = std::make_unique<Kernel::KHandleTable>(kernel);
global_handle_table->Initialize(KHandleTable::MaxTableSize);
+ default_service_thread = CreateServiceThread(kernel, "DefaultServiceThread");
is_phantom_mode_for_singlecore = false;
@@ -76,7 +75,7 @@ struct KernelCore::Impl {
// Initialize kernel memory and resources.
InitializeSystemResourceLimit(kernel, system.CoreTiming());
InitializeMemoryLayout();
- InitializePageSlab();
+ Init::InitializeKPageBufferSlabHeap(system);
InitializeSchedulers();
InitializeSuspendThreads();
InitializePreemption(kernel);
@@ -86,7 +85,7 @@ struct KernelCore::Impl {
void InitializeCores() {
for (u32 core_id = 0; core_id < Core::Hardware::NUM_CPU_CORES; core_id++) {
- cores[core_id].Initialize(current_process->Is64BitProcess());
+ cores[core_id].Initialize((*current_process).Is64BitProcess());
system.Memory().SetCurrentPageTable(*current_process, core_id);
}
}
@@ -97,30 +96,17 @@ struct KernelCore::Impl {
process_list.clear();
- // Close all open server ports.
- std::unordered_set<KServerPort*> server_ports_;
+ // Close all open server sessions and ports.
+ std::unordered_set<KAutoObject*> server_objects_;
{
- std::lock_guard lk(server_ports_lock);
- server_ports_ = server_ports;
- server_ports.clear();
+ std::scoped_lock lk(server_objects_lock);
+ server_objects_ = server_objects;
+ server_objects.clear();
}
- for (auto* server_port : server_ports_) {
- server_port->Close();
- }
- // Close all open server sessions.
- std::unordered_set<KServerSession*> server_sessions_;
- {
- std::lock_guard lk(server_sessions_lock);
- server_sessions_ = server_sessions;
- server_sessions.clear();
- }
- for (auto* server_session : server_sessions_) {
- server_session->Close();
+ for (auto* server_object : server_objects_) {
+ server_object->Close();
}
- // Ensure that the object list container is finalized and properly shutdown.
- object_list_container.Finalize();
-
// Ensures all service threads gracefully shutdown.
ClearServiceThreads();
@@ -171,7 +157,7 @@ struct KernelCore::Impl {
// Close kernel objects that were not freed on shutdown
{
- std::lock_guard lk(registered_in_use_objects_lock);
+ std::scoped_lock lk{registered_in_use_objects_lock};
if (registered_in_use_objects.size()) {
for (auto& object : registered_in_use_objects) {
object->Close();
@@ -182,23 +168,27 @@ struct KernelCore::Impl {
// Shutdown all processes.
if (current_process) {
- current_process->Finalize();
+ (*current_process).Finalize();
// current_process->Close();
// TODO: The current process should be destroyed based on accurate ref counting after
// calling Close(). Adding a manual Destroy() call instead to avoid a memory leak.
- current_process->Destroy();
+ (*current_process).Destroy();
current_process = nullptr;
}
// Track kernel objects that were not freed on shutdown
{
- std::lock_guard lk(registered_objects_lock);
+ std::scoped_lock lk{registered_objects_lock};
if (registered_objects.size()) {
- LOG_WARNING(Kernel, "{} kernel objects were dangling on shutdown!",
- registered_objects.size());
+ LOG_DEBUG(Kernel, "{} kernel objects were dangling on shutdown!",
+ registered_objects.size());
registered_objects.clear();
}
}
+
+ // Ensure that the object list container is finalized and properly shutdown.
+ global_object_list_container->Finalize();
+ global_object_list_container.reset();
}
void InitializePhysicalCores() {
@@ -291,15 +281,16 @@ struct KernelCore::Impl {
// Gets the dummy KThread for the caller, allocating a new one if this is the first time
KThread* GetHostDummyThread() {
- auto make_thread = [this]() {
- KThread* thread = KThread::Create(system.Kernel());
+ auto initialize = [this](KThread* thread) {
ASSERT(KThread::InitializeDummyThread(thread).IsSuccess());
thread->SetName(fmt::format("DummyThread:{}", GetHostThreadId()));
return thread;
};
- thread_local KThread* saved_thread = make_thread();
- return saved_thread;
+ thread_local auto raw_thread = KThread(system.Kernel());
+ thread_local auto thread = initialize(&raw_thread);
+
+ return thread;
}
/// Registers a CPU core thread by allocating a host thread ID for it
@@ -660,22 +651,6 @@ struct KernelCore::Impl {
time_phys_addr, time_size, "Time:SharedMemory");
}
- void InitializePageSlab() {
- // Allocate slab heaps
- user_slab_heap_pages =
- std::make_unique<KSlabHeap<Page>>(KSlabHeap<Page>::AllocationType::Guest);
-
- // TODO(ameerj): This should be derived, not hardcoded within the kernel
- constexpr u64 user_slab_heap_size{0x3de000};
- // Reserve slab heaps
- ASSERT(
- system_resource_limit->Reserve(LimitableResource::PhysicalMemory, user_slab_heap_size));
- // Initialize slab heap
- user_slab_heap_pages->Initialize(
- system.DeviceMemory().GetPointer(Core::DramMemoryMap::SlabHeapBase),
- user_slab_heap_size);
- }
-
KClientPort* CreateNamedServicePort(std::string name) {
auto search = service_interface_factory.find(name);
if (search == service_interface_factory.end()) {
@@ -684,13 +659,20 @@ struct KernelCore::Impl {
}
KClientPort* port = &search->second(system.ServiceManager(), system);
- {
- std::lock_guard lk(server_ports_lock);
- server_ports.insert(&port->GetParent()->GetServerPort());
- }
+ RegisterServerObject(&port->GetParent()->GetServerPort());
return port;
}
+ void RegisterServerObject(KAutoObject* server_object) {
+ std::scoped_lock lk(server_objects_lock);
+ server_objects.insert(server_object);
+ }
+
+ void UnregisterServerObject(KAutoObject* server_object) {
+ std::scoped_lock lk(server_objects_lock);
+ server_objects.erase(server_object);
+ }
+
std::weak_ptr<Kernel::ServiceThread> CreateServiceThread(KernelCore& kernel,
const std::string& name) {
auto service_thread = std::make_shared<Kernel::ServiceThread>(kernel, 1, name);
@@ -703,6 +685,12 @@ struct KernelCore::Impl {
void ReleaseServiceThread(std::weak_ptr<Kernel::ServiceThread> service_thread) {
if (auto strong_ptr = service_thread.lock()) {
+ if (strong_ptr == default_service_thread.lock()) {
+ // Nothing to do here, the service is using default_service_thread, which will be
+ // released on shutdown.
+ return;
+ }
+
service_threads_manager.QueueWork(
[this, strong_ptr{std::move(strong_ptr)}]() { service_threads.erase(strong_ptr); });
}
@@ -712,8 +700,7 @@ struct KernelCore::Impl {
service_threads_manager.QueueWork([this]() { service_threads.clear(); });
}
- std::mutex server_ports_lock;
- std::mutex server_sessions_lock;
+ std::mutex server_objects_lock;
std::mutex registered_objects_lock;
std::mutex registered_in_use_objects_lock;
@@ -724,7 +711,7 @@ struct KernelCore::Impl {
// Lists all processes that exist in the current session.
std::vector<KProcess*> process_list;
- KProcess* current_process{};
+ std::atomic<KProcess*> current_process{};
std::unique_ptr<Kernel::GlobalSchedulerContext> global_scheduler_context;
Kernel::TimeManager time_manager;
@@ -737,14 +724,13 @@ struct KernelCore::Impl {
// stores all the objects in place.
std::unique_ptr<KHandleTable> global_handle_table;
- KAutoObjectWithListContainer object_list_container;
+ std::unique_ptr<KAutoObjectWithListContainer> global_object_list_container;
/// Map of named ports managed by the kernel, which can be retrieved using
/// the ConnectToPort SVC.
std::unordered_map<std::string, ServiceInterfaceFactory> service_interface_factory;
NamedPortTable named_ports;
- std::unordered_set<KServerPort*> server_ports;
- std::unordered_set<KServerSession*> server_sessions;
+ std::unordered_set<KAutoObject*> server_objects;
std::unordered_set<KAutoObject*> registered_objects;
std::unordered_set<KAutoObject*> registered_in_use_objects;
@@ -756,7 +742,6 @@ struct KernelCore::Impl {
// Kernel memory management
std::unique_ptr<KMemoryManager> memory_manager;
- std::unique_ptr<KSlabHeap<Page>> user_slab_heap_pages;
// Shared memory for services
Kernel::KSharedMemory* hid_shared_mem{};
@@ -768,7 +753,8 @@ struct KernelCore::Impl {
std::unique_ptr<KMemoryLayout> memory_layout;
// Threads used for services
- std::unordered_set<std::shared_ptr<Kernel::ServiceThread>> service_threads;
+ std::unordered_set<std::shared_ptr<ServiceThread>> service_threads;
+ std::weak_ptr<ServiceThread> default_service_thread;
Common::ThreadWorker service_threads_manager;
std::array<KThread*, Core::Hardware::NUM_CPU_CORES> suspend_threads;
@@ -915,11 +901,11 @@ const Core::ExclusiveMonitor& KernelCore::GetExclusiveMonitor() const {
}
KAutoObjectWithListContainer& KernelCore::ObjectListContainer() {
- return impl->object_list_container;
+ return *impl->global_object_list_container;
}
const KAutoObjectWithListContainer& KernelCore::ObjectListContainer() const {
- return impl->object_list_container;
+ return *impl->global_object_list_container;
}
void KernelCore::InvalidateAllInstructionCaches() {
@@ -949,33 +935,31 @@ KClientPort* KernelCore::CreateNamedServicePort(std::string name) {
return impl->CreateNamedServicePort(std::move(name));
}
-void KernelCore::RegisterServerSession(KServerSession* server_session) {
- std::lock_guard lk(impl->server_sessions_lock);
- impl->server_sessions.insert(server_session);
+void KernelCore::RegisterServerObject(KAutoObject* server_object) {
+ impl->RegisterServerObject(server_object);
}
-void KernelCore::UnregisterServerSession(KServerSession* server_session) {
- std::lock_guard lk(impl->server_sessions_lock);
- impl->server_sessions.erase(server_session);
+void KernelCore::UnregisterServerObject(KAutoObject* server_object) {
+ impl->UnregisterServerObject(server_object);
}
void KernelCore::RegisterKernelObject(KAutoObject* object) {
- std::lock_guard lk(impl->registered_objects_lock);
+ std::scoped_lock lk{impl->registered_objects_lock};
impl->registered_objects.insert(object);
}
void KernelCore::UnregisterKernelObject(KAutoObject* object) {
- std::lock_guard lk(impl->registered_objects_lock);
+ std::scoped_lock lk{impl->registered_objects_lock};
impl->registered_objects.erase(object);
}
void KernelCore::RegisterInUseObject(KAutoObject* object) {
- std::lock_guard lk(impl->registered_in_use_objects_lock);
+ std::scoped_lock lk{impl->registered_in_use_objects_lock};
impl->registered_in_use_objects.insert(object);
}
void KernelCore::UnregisterInUseObject(KAutoObject* object) {
- std::lock_guard lk(impl->registered_in_use_objects_lock);
+ std::scoped_lock lk{impl->registered_in_use_objects_lock};
impl->registered_in_use_objects.erase(object);
}
@@ -1031,14 +1015,6 @@ const KMemoryManager& KernelCore::MemoryManager() const {
return *impl->memory_manager;
}
-KSlabHeap<Page>& KernelCore::GetUserSlabHeapPages() {
- return *impl->user_slab_heap_pages;
-}
-
-const KSlabHeap<Page>& KernelCore::GetUserSlabHeapPages() const {
- return *impl->user_slab_heap_pages;
-}
-
Kernel::KSharedMemory& KernelCore::GetHidSharedMem() {
return *impl->hid_shared_mem;
}
@@ -1112,6 +1088,10 @@ std::weak_ptr<Kernel::ServiceThread> KernelCore::CreateServiceThread(const std::
return impl->CreateServiceThread(*this, name);
}
+std::weak_ptr<Kernel::ServiceThread> KernelCore::GetDefaultServiceThread() const {
+ return impl->default_service_thread;
+}
+
void KernelCore::ReleaseServiceThread(std::weak_ptr<Kernel::ServiceThread> service_thread) {
impl->ReleaseServiceThread(service_thread);
}
diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h
index c1254b18d..d709c368b 100644
--- a/src/core/hle/kernel/kernel.h
+++ b/src/core/hle/kernel/kernel.h
@@ -14,7 +14,6 @@
#include "core/hardware_properties.h"
#include "core/hle/kernel/k_auto_object.h"
#include "core/hle/kernel/k_slab_heap.h"
-#include "core/hle/kernel/memory_types.h"
#include "core/hle/kernel/svc_common.h"
namespace Core {
@@ -43,6 +42,7 @@ class KHandleTable;
class KLinkedListNode;
class KMemoryLayout;
class KMemoryManager;
+class KPageBuffer;
class KPort;
class KProcess;
class KResourceLimit;
@@ -52,6 +52,7 @@ class KSession;
class KSharedMemory;
class KSharedMemoryInfo;
class KThread;
+class KThreadLocalPage;
class KTransferMemory;
class KWorkerTaskManager;
class KWritableEvent;
@@ -194,13 +195,13 @@ public:
/// Opens a port to a service previously registered with RegisterNamedService.
KClientPort* CreateNamedServicePort(std::string name);
- /// Registers a server session with the gobal emulation state, to be freed on shutdown. This is
- /// necessary because we do not emulate processes for HLE sessions.
- void RegisterServerSession(KServerSession* server_session);
+ /// Registers a server session or port with the gobal emulation state, to be freed on shutdown.
+ /// This is necessary because we do not emulate processes for HLE sessions and ports.
+ void RegisterServerObject(KAutoObject* server_object);
- /// Unregisters a server session previously registered with RegisterServerSession when it was
- /// destroyed during the current emulation session.
- void UnregisterServerSession(KServerSession* server_session);
+ /// Unregisters a server session or port previously registered with RegisterServerSession when
+ /// it was destroyed during the current emulation session.
+ void UnregisterServerObject(KAutoObject* server_object);
/// Registers all kernel objects with the global emulation state, this is purely for tracking
/// leaks after emulation has been shutdown.
@@ -239,12 +240,6 @@ public:
/// Gets the virtual memory manager for the kernel.
const KMemoryManager& MemoryManager() const;
- /// Gets the slab heap allocated for user space pages.
- KSlabHeap<Page>& GetUserSlabHeapPages();
-
- /// Gets the slab heap allocated for user space pages.
- const KSlabHeap<Page>& GetUserSlabHeapPages() const;
-
/// Gets the shared memory object for HID services.
Kernel::KSharedMemory& GetHidSharedMem();
@@ -284,9 +279,11 @@ public:
void ExitSVCProfile();
/**
- * Creates an HLE service thread, which are used to execute service routines asynchronously.
- * While these are allocated per ServerSession, these need to be owned and managed outside
- * of ServerSession to avoid a circular dependency.
+ * Creates a host thread to execute HLE service requests, which are used to execute service
+ * routines asynchronously. While these are allocated per ServerSession, these need to be owned
+ * and managed outside of ServerSession to avoid a circular dependency. In general, most
+ * services can just use the default service thread, and not need their own host service thread.
+ * See GetDefaultServiceThread.
* @param name String name for the ServerSession creating this thread, used for debug
* purposes.
* @returns The a weak pointer newly created service thread.
@@ -294,6 +291,14 @@ public:
std::weak_ptr<Kernel::ServiceThread> CreateServiceThread(const std::string& name);
/**
+ * Gets the default host service thread, which executes HLE service requests. Unless service
+ * requests need to block on the host, the default service thread should be used in favor of
+ * creating a new service thread.
+ * @returns The a weak pointer for the default service thread.
+ */
+ std::weak_ptr<Kernel::ServiceThread> GetDefaultServiceThread() const;
+
+ /**
* Releases a HLE service thread, instructing KernelCore to free it. This should be called when
* the ServerSession associated with the thread is destroyed.
* @param service_thread Service thread to release.
@@ -336,6 +341,10 @@ public:
return slab_heap_container->writeable_event;
} else if constexpr (std::is_same_v<T, KCodeMemory>) {
return slab_heap_container->code_memory;
+ } else if constexpr (std::is_same_v<T, KPageBuffer>) {
+ return slab_heap_container->page_buffer;
+ } else if constexpr (std::is_same_v<T, KThreadLocalPage>) {
+ return slab_heap_container->thread_local_page;
}
}
@@ -397,6 +406,8 @@ private:
KSlabHeap<KTransferMemory> transfer_memory;
KSlabHeap<KWritableEvent> writeable_event;
KSlabHeap<KCodeMemory> code_memory;
+ KSlabHeap<KPageBuffer> page_buffer;
+ KSlabHeap<KThreadLocalPage> thread_local_page;
};
std::unique_ptr<SlabHeapContainer> slab_heap_container;
diff --git a/src/core/hle/kernel/physical_core.cpp b/src/core/hle/kernel/physical_core.cpp
index 7477668e4..18a5f40f8 100644
--- a/src/core/hle/kernel/physical_core.cpp
+++ b/src/core/hle/kernel/physical_core.cpp
@@ -58,6 +58,7 @@ bool PhysicalCore::IsInterrupted() const {
void PhysicalCore::Interrupt() {
guard->lock();
interrupts[core_index].SetInterrupt(true);
+ arm_interface->SignalInterrupt();
guard->unlock();
}
diff --git a/src/core/hle/kernel/service_thread.cpp b/src/core/hle/kernel/service_thread.cpp
index 4eb3a5988..52d25b837 100644
--- a/src/core/hle/kernel/service_thread.cpp
+++ b/src/core/hle/kernel/service_thread.cpp
@@ -49,12 +49,9 @@ ServiceThread::Impl::Impl(KernelCore& kernel, std::size_t num_threads, const std
return;
}
+ // Allocate a dummy guest thread for this host thread.
kernel.RegisterHostThread();
- // Ensure the dummy thread allocated for this host thread is closed on exit.
- auto* dummy_thread = kernel.GetCurrentEmuThread();
- SCOPE_EXIT({ dummy_thread->Close(); });
-
while (true) {
std::function<void()> task;
diff --git a/src/core/hle/kernel/slab_helpers.h b/src/core/hle/kernel/slab_helpers.h
index f1c11256e..dc1e48fc9 100644
--- a/src/core/hle/kernel/slab_helpers.h
+++ b/src/core/hle/kernel/slab_helpers.h
@@ -59,7 +59,7 @@ class KAutoObjectWithSlabHeapAndContainer : public Base {
private:
static Derived* Allocate(KernelCore& kernel) {
- return kernel.SlabHeap<Derived>().AllocateWithKernel(kernel);
+ return kernel.SlabHeap<Derived>().Allocate(kernel);
}
static void Free(KernelCore& kernel, Derived* obj) {
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index 839171e85..0c86435b5 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -1362,8 +1362,11 @@ static ResultCode MapProcessMemory(Core::System& system, VAddr dst_address, Hand
ResultInvalidMemoryRegion);
// Create a new page group.
- KMemoryInfo kBlockInfo = dst_pt.QueryInfo(dst_address);
- KPageLinkedList pg(kBlockInfo.GetAddress(), kBlockInfo.GetNumPages());
+ KPageLinkedList pg;
+ R_TRY(src_pt.MakeAndOpenPageGroup(
+ std::addressof(pg), src_address, size / PageSize, KMemoryState::FlagCanMapProcess,
+ KMemoryState::FlagCanMapProcess, KMemoryPermission::None, KMemoryPermission::None,
+ KMemoryAttribute::All, KMemoryAttribute::None));
// Map the group.
R_TRY(dst_pt.MapPages(dst_address, pg, KMemoryState::SharedCode,
@@ -1408,8 +1411,8 @@ static ResultCode UnmapProcessMemory(Core::System& system, VAddr dst_address, Ha
}
static ResultCode CreateCodeMemory(Core::System& system, Handle* out, VAddr address, size_t size) {
- LOG_TRACE(Kernel_SVC, "called, handle_out={}, address=0x{:X}, size=0x{:X}",
- static_cast<void*>(out), address, size);
+ LOG_TRACE(Kernel_SVC, "called, address=0x{:X}, size=0x{:X}", address, size);
+
// Get kernel instance.
auto& kernel = system.Kernel();
@@ -1664,7 +1667,7 @@ static ResultCode UnmapProcessCodeMemory(Core::System& system, Handle process_ha
return ResultInvalidAddress;
}
- if (size == 0 || Common::Is4KBAligned(size)) {
+ if (size == 0 || !Common::Is4KBAligned(size)) {
LOG_ERROR(Kernel_SVC, "Size is zero or not page-aligned (size=0x{:016X}).", size);
return ResultInvalidSize;
}
@@ -1710,7 +1713,8 @@ static ResultCode UnmapProcessCodeMemory(Core::System& system, Handle process_ha
return ResultInvalidMemoryRegion;
}
- return page_table.UnmapCodeMemory(dst_address, src_address, size);
+ return page_table.UnmapCodeMemory(dst_address, src_address, size,
+ KPageTable::ICacheInvalidationStrategy::InvalidateAll);
}
/// Exits the current process
diff --git a/src/core/hle/kernel/svc_types.h b/src/core/hle/kernel/svc_types.h
index 365e22e4e..b2e9ec092 100644
--- a/src/core/hle/kernel/svc_types.h
+++ b/src/core/hle/kernel/svc_types.h
@@ -96,4 +96,6 @@ constexpr inline s32 IdealCoreNoUpdate = -3;
constexpr inline s32 LowestThreadPriority = 63;
constexpr inline s32 HighestThreadPriority = 0;
+constexpr inline size_t ThreadLocalRegionSize = 0x200;
+
} // namespace Kernel::Svc
diff --git a/src/core/hle/kernel/time_manager.cpp b/src/core/hle/kernel/time_manager.cpp
index aa985d820..5b8fe8eae 100644
--- a/src/core/hle/kernel/time_manager.cpp
+++ b/src/core/hle/kernel/time_manager.cpp
@@ -24,7 +24,7 @@ TimeManager::TimeManager(Core::System& system_) : system{system_} {
}
void TimeManager::ScheduleTimeEvent(KThread* thread, s64 nanoseconds) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
if (nanoseconds > 0) {
ASSERT(thread);
ASSERT(thread->GetState() != ThreadState::Runnable);
@@ -35,7 +35,7 @@ void TimeManager::ScheduleTimeEvent(KThread* thread, s64 nanoseconds) {
}
void TimeManager::UnscheduleTimeEvent(KThread* thread) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
system.CoreTiming().UnscheduleEvent(time_manager_event_type,
reinterpret_cast<uintptr_t>(thread));
}
diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp
index e34ef5a78..8a5332991 100644
--- a/src/core/hle/service/acc/acc.cpp
+++ b/src/core/hle/service/acc/acc.cpp
@@ -16,7 +16,6 @@
#include "core/file_sys/control_metadata.h"
#include "core/file_sys/patch_manager.h"
#include "core/hle/ipc_helpers.h"
-#include "core/hle/kernel/kernel.h"
#include "core/hle/service/acc/acc.h"
#include "core/hle/service/acc/acc_aa.h"
#include "core/hle/service/acc/acc_su.h"
diff --git a/src/core/hle/service/acc/profile_manager.h b/src/core/hle/service/acc/profile_manager.h
index 17347f7ef..5b690b406 100644
--- a/src/core/hle/service/acc/profile_manager.h
+++ b/src/core/hle/service/acc/profile_manager.h
@@ -7,6 +7,7 @@
#include <array>
#include <optional>
+#include "common/common_funcs.h"
#include "common/common_types.h"
#include "common/swap.h"
#include "common/uuid.h"
diff --git a/src/core/hle/service/am/am.cpp b/src/core/hle/service/am/am.cpp
index 2f8e21568..4d7e5ecd3 100644
--- a/src/core/hle/service/am/am.cpp
+++ b/src/core/hle/service/am/am.cpp
@@ -980,7 +980,7 @@ private:
LOG_DEBUG(Service_AM, "called");
IPC::RequestParser rp{ctx};
- applet->GetBroker().PushNormalDataFromGame(rp.PopIpcInterface<IStorage>());
+ applet->GetBroker().PushNormalDataFromGame(rp.PopIpcInterface<IStorage>().lock());
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
@@ -1007,7 +1007,7 @@ private:
LOG_DEBUG(Service_AM, "called");
IPC::RequestParser rp{ctx};
- applet->GetBroker().PushInteractiveDataFromGame(rp.PopIpcInterface<IStorage>());
+ applet->GetBroker().PushInteractiveDataFromGame(rp.PopIpcInterface<IStorage>().lock());
ASSERT(applet->IsInitialized());
applet->ExecuteInteractive();
@@ -1337,7 +1337,7 @@ IApplicationFunctions::IApplicationFunctions(Core::System& system_)
{200, nullptr, "GetLastApplicationExitReason"},
{500, nullptr, "StartContinuousRecordingFlushForDebug"},
{1000, nullptr, "CreateMovieMaker"},
- {1001, nullptr, "PrepareForJit"},
+ {1001, &IApplicationFunctions::PrepareForJit, "PrepareForJit"},
};
// clang-format on
@@ -1787,6 +1787,13 @@ void IApplicationFunctions::GetHealthWarningDisappearedSystemEvent(Kernel::HLERe
rb.PushCopyObjects(health_warning_disappeared_system_event->GetReadableEvent());
}
+void IApplicationFunctions::PrepareForJit(Kernel::HLERequestContext& ctx) {
+ LOG_WARNING(Service_AM, "(STUBBED) called");
+
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultSuccess);
+}
+
void InstallInterfaces(SM::ServiceManager& service_manager, NVFlinger::NVFlinger& nvflinger,
Core::System& system) {
auto message_queue = std::make_shared<AppletMessageQueue>(system);
diff --git a/src/core/hle/service/am/am.h b/src/core/hle/service/am/am.h
index fdd937b82..11a3c0459 100644
--- a/src/core/hle/service/am/am.h
+++ b/src/core/hle/service/am/am.h
@@ -336,6 +336,7 @@ private:
void TryPopFromFriendInvitationStorageChannel(Kernel::HLERequestContext& ctx);
void GetNotificationStorageChannelEvent(Kernel::HLERequestContext& ctx);
void GetHealthWarningDisappearedSystemEvent(Kernel::HLERequestContext& ctx);
+ void PrepareForJit(Kernel::HLERequestContext& ctx);
KernelHelpers::ServiceContext service_context;
diff --git a/src/core/hle/service/am/applets/applet_mii_edit.cpp b/src/core/hle/service/am/applets/applet_mii_edit.cpp
new file mode 100644
index 000000000..8fbde1be4
--- /dev/null
+++ b/src/core/hle/service/am/applets/applet_mii_edit.cpp
@@ -0,0 +1,139 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "common/assert.h"
+#include "common/logging/log.h"
+#include "core/core.h"
+#include "core/frontend/applets/mii_edit.h"
+#include "core/hle/service/am/am.h"
+#include "core/hle/service/am/applets/applet_mii_edit.h"
+#include "core/hle/service/mii/mii_manager.h"
+
+namespace Service::AM::Applets {
+
+MiiEdit::MiiEdit(Core::System& system_, LibraryAppletMode applet_mode_,
+ const Core::Frontend::MiiEditApplet& frontend_)
+ : Applet{system_, applet_mode_}, frontend{frontend_}, system{system_} {}
+
+MiiEdit::~MiiEdit() = default;
+
+void MiiEdit::Initialize() {
+ // Note: MiiEdit is not initialized with common arguments.
+ // Instead, it is initialized by an AppletInput storage with size 0x100 bytes.
+ // Do NOT call Applet::Initialize() here.
+
+ const auto storage = broker.PopNormalDataToApplet();
+ ASSERT(storage != nullptr);
+
+ const auto applet_input_data = storage->GetData();
+ ASSERT(applet_input_data.size() >= sizeof(MiiEditAppletInputCommon));
+
+ std::memcpy(&applet_input_common, applet_input_data.data(), sizeof(MiiEditAppletInputCommon));
+
+ LOG_INFO(Service_AM,
+ "Initializing MiiEdit Applet with MiiEditAppletVersion={} and MiiEditAppletMode={}",
+ applet_input_common.version, applet_input_common.applet_mode);
+
+ switch (applet_input_common.version) {
+ case MiiEditAppletVersion::Version3:
+ ASSERT(applet_input_data.size() ==
+ sizeof(MiiEditAppletInputCommon) + sizeof(MiiEditAppletInputV3));
+ std::memcpy(&applet_input_v3, applet_input_data.data() + sizeof(MiiEditAppletInputCommon),
+ sizeof(MiiEditAppletInputV3));
+ break;
+ case MiiEditAppletVersion::Version4:
+ ASSERT(applet_input_data.size() ==
+ sizeof(MiiEditAppletInputCommon) + sizeof(MiiEditAppletInputV4));
+ std::memcpy(&applet_input_v4, applet_input_data.data() + sizeof(MiiEditAppletInputCommon),
+ sizeof(MiiEditAppletInputV4));
+ break;
+ default:
+ UNIMPLEMENTED_MSG("Unknown MiiEditAppletVersion={} with size={}",
+ applet_input_common.version, applet_input_data.size());
+ ASSERT(applet_input_data.size() >=
+ sizeof(MiiEditAppletInputCommon) + sizeof(MiiEditAppletInputV4));
+ std::memcpy(&applet_input_v4, applet_input_data.data() + sizeof(MiiEditAppletInputCommon),
+ sizeof(MiiEditAppletInputV4));
+ break;
+ }
+}
+
+bool MiiEdit::TransactionComplete() const {
+ return is_complete;
+}
+
+ResultCode MiiEdit::GetStatus() const {
+ return ResultSuccess;
+}
+
+void MiiEdit::ExecuteInteractive() {
+ UNREACHABLE_MSG("Attempted to call interactive execution on non-interactive applet.");
+}
+
+void MiiEdit::Execute() {
+ if (is_complete) {
+ return;
+ }
+
+ // This is a default stub for each of the MiiEdit applet modes.
+ switch (applet_input_common.applet_mode) {
+ case MiiEditAppletMode::ShowMiiEdit:
+ case MiiEditAppletMode::AppendMii:
+ case MiiEditAppletMode::AppendMiiImage:
+ case MiiEditAppletMode::UpdateMiiImage:
+ MiiEditOutput(MiiEditResult::Success, 0);
+ break;
+ case MiiEditAppletMode::CreateMii:
+ case MiiEditAppletMode::EditMii: {
+ Service::Mii::MiiManager mii_manager;
+
+ const MiiEditCharInfo char_info{
+ .mii_info{applet_input_common.applet_mode == MiiEditAppletMode::EditMii
+ ? applet_input_v4.char_info.mii_info
+ : mii_manager.BuildDefault(0)},
+ };
+
+ MiiEditOutputForCharInfoEditing(MiiEditResult::Success, char_info);
+ break;
+ }
+ default:
+ UNIMPLEMENTED_MSG("Unknown MiiEditAppletMode={}", applet_input_common.applet_mode);
+
+ MiiEditOutput(MiiEditResult::Success, 0);
+ break;
+ }
+}
+
+void MiiEdit::MiiEditOutput(MiiEditResult result, s32 index) {
+ const MiiEditAppletOutput applet_output{
+ .result{result},
+ .index{index},
+ };
+
+ std::vector<u8> out_data(sizeof(MiiEditAppletOutput));
+ std::memcpy(out_data.data(), &applet_output, sizeof(MiiEditAppletOutput));
+
+ is_complete = true;
+
+ broker.PushNormalDataFromApplet(std::make_shared<IStorage>(system, std::move(out_data)));
+ broker.SignalStateChanged();
+}
+
+void MiiEdit::MiiEditOutputForCharInfoEditing(MiiEditResult result,
+ const MiiEditCharInfo& char_info) {
+ const MiiEditAppletOutputForCharInfoEditing applet_output{
+ .result{result},
+ .char_info{char_info},
+ };
+
+ std::vector<u8> out_data(sizeof(MiiEditAppletOutputForCharInfoEditing));
+ std::memcpy(out_data.data(), &applet_output, sizeof(MiiEditAppletOutputForCharInfoEditing));
+
+ is_complete = true;
+
+ broker.PushNormalDataFromApplet(std::make_shared<IStorage>(system, std::move(out_data)));
+ broker.SignalStateChanged();
+}
+
+} // namespace Service::AM::Applets
diff --git a/src/core/hle/service/am/applets/applet_mii_edit.h b/src/core/hle/service/am/applets/applet_mii_edit.h
new file mode 100644
index 000000000..e9ca0e2af
--- /dev/null
+++ b/src/core/hle/service/am/applets/applet_mii_edit.h
@@ -0,0 +1,45 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "core/hle/result.h"
+#include "core/hle/service/am/applets/applet_mii_edit_types.h"
+#include "core/hle/service/am/applets/applets.h"
+
+namespace Core {
+class System;
+} // namespace Core
+
+namespace Service::AM::Applets {
+
+class MiiEdit final : public Applet {
+public:
+ explicit MiiEdit(Core::System& system_, LibraryAppletMode applet_mode_,
+ const Core::Frontend::MiiEditApplet& frontend_);
+ ~MiiEdit() override;
+
+ void Initialize() override;
+
+ bool TransactionComplete() const override;
+ ResultCode GetStatus() const override;
+ void ExecuteInteractive() override;
+ void Execute() override;
+
+ void MiiEditOutput(MiiEditResult result, s32 index);
+
+ void MiiEditOutputForCharInfoEditing(MiiEditResult result, const MiiEditCharInfo& char_info);
+
+private:
+ const Core::Frontend::MiiEditApplet& frontend;
+ Core::System& system;
+
+ MiiEditAppletInputCommon applet_input_common{};
+ MiiEditAppletInputV3 applet_input_v3{};
+ MiiEditAppletInputV4 applet_input_v4{};
+
+ bool is_complete{false};
+};
+
+} // namespace Service::AM::Applets
diff --git a/src/core/hle/service/am/applets/applet_mii_edit_types.h b/src/core/hle/service/am/applets/applet_mii_edit_types.h
new file mode 100644
index 000000000..70dea0007
--- /dev/null
+++ b/src/core/hle/service/am/applets/applet_mii_edit_types.h
@@ -0,0 +1,83 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <array>
+
+#include "common/common_funcs.h"
+#include "common/common_types.h"
+#include "core/hle/service/mii/types.h"
+
+namespace Service::AM::Applets {
+
+enum class MiiEditAppletVersion : s32 {
+ Version3 = 0x3, // 1.0.0 - 10.1.1
+ Version4 = 0x4, // 10.2.0+
+};
+
+// This is nn::mii::AppletMode
+enum class MiiEditAppletMode : u32 {
+ ShowMiiEdit = 0,
+ AppendMii = 1,
+ AppendMiiImage = 2,
+ UpdateMiiImage = 3,
+ CreateMii = 4,
+ EditMii = 5,
+};
+
+enum class MiiEditResult : u32 {
+ Success,
+ Cancel,
+};
+
+struct MiiEditCharInfo {
+ Service::Mii::MiiInfo mii_info{};
+};
+static_assert(sizeof(MiiEditCharInfo) == 0x58, "MiiEditCharInfo has incorrect size.");
+
+struct MiiEditAppletInputCommon {
+ MiiEditAppletVersion version{};
+ MiiEditAppletMode applet_mode{};
+};
+static_assert(sizeof(MiiEditAppletInputCommon) == 0x8,
+ "MiiEditAppletInputCommon has incorrect size.");
+
+struct MiiEditAppletInputV3 {
+ u32 special_mii_key_code{};
+ std::array<Common::UUID, 8> valid_uuids{};
+ Common::UUID used_uuid{};
+ INSERT_PADDING_BYTES(0x64);
+};
+static_assert(sizeof(MiiEditAppletInputV3) == 0x100 - sizeof(MiiEditAppletInputCommon),
+ "MiiEditAppletInputV3 has incorrect size.");
+
+struct MiiEditAppletInputV4 {
+ u32 special_mii_key_code{};
+ MiiEditCharInfo char_info{};
+ INSERT_PADDING_BYTES(0x28);
+ Common::UUID used_uuid{};
+ INSERT_PADDING_BYTES(0x64);
+};
+static_assert(sizeof(MiiEditAppletInputV4) == 0x100 - sizeof(MiiEditAppletInputCommon),
+ "MiiEditAppletInputV4 has incorrect size.");
+
+// This is nn::mii::AppletOutput
+struct MiiEditAppletOutput {
+ MiiEditResult result{};
+ s32 index{};
+ INSERT_PADDING_BYTES(0x18);
+};
+static_assert(sizeof(MiiEditAppletOutput) == 0x20, "MiiEditAppletOutput has incorrect size.");
+
+// This is nn::mii::AppletOutputForCharInfoEditing
+struct MiiEditAppletOutputForCharInfoEditing {
+ MiiEditResult result{};
+ MiiEditCharInfo char_info{};
+ INSERT_PADDING_BYTES(0x24);
+};
+static_assert(sizeof(MiiEditAppletOutputForCharInfoEditing) == 0x80,
+ "MiiEditAppletOutputForCharInfoEditing has incorrect size.");
+
+} // namespace Service::AM::Applets
diff --git a/src/core/hle/service/am/applets/applet_software_keyboard.cpp b/src/core/hle/service/am/applets/applet_software_keyboard.cpp
index f38f53f69..ee669686c 100644
--- a/src/core/hle/service/am/applets/applet_software_keyboard.cpp
+++ b/src/core/hle/service/am/applets/applet_software_keyboard.cpp
@@ -226,7 +226,7 @@ void SoftwareKeyboard::InitializeForeground() {
ASSERT(work_buffer_storage != nullptr);
if (swkbd_config_common.initial_string_length == 0) {
- InitializeFrontendKeyboard();
+ InitializeFrontendNormalKeyboard();
return;
}
@@ -243,7 +243,7 @@ void SoftwareKeyboard::InitializeForeground() {
LOG_DEBUG(Service_AM, "\nInitial Text: {}", Common::UTF16ToUTF8(initial_text));
- InitializeFrontendKeyboard();
+ InitializeFrontendNormalKeyboard();
}
void SoftwareKeyboard::InitializeBackground(LibraryAppletMode library_applet_mode) {
@@ -480,129 +480,173 @@ void SoftwareKeyboard::ChangeState(SwkbdState state) {
ReplyDefault();
}
-void SoftwareKeyboard::InitializeFrontendKeyboard() {
- if (is_background) {
- const auto& appear_arg = swkbd_calc_arg.appear_arg;
-
- std::u16string ok_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
- appear_arg.ok_text.data(), appear_arg.ok_text.size());
-
- const u32 max_text_length =
- appear_arg.max_text_length > 0 && appear_arg.max_text_length <= DEFAULT_MAX_TEXT_LENGTH
- ? appear_arg.max_text_length
- : DEFAULT_MAX_TEXT_LENGTH;
-
- const u32 min_text_length =
- appear_arg.min_text_length <= max_text_length ? appear_arg.min_text_length : 0;
-
- const s32 initial_cursor_position =
- current_cursor_position > 0 ? current_cursor_position : 0;
-
- const auto text_draw_type =
- max_text_length <= 32 ? SwkbdTextDrawType::Line : SwkbdTextDrawType::Box;
-
- Core::Frontend::KeyboardInitializeParameters initialize_parameters{
- .ok_text{std::move(ok_text)},
- .header_text{},
- .sub_text{},
- .guide_text{},
- .initial_text{current_text},
- .max_text_length{max_text_length},
- .min_text_length{min_text_length},
- .initial_cursor_position{initial_cursor_position},
- .type{appear_arg.type},
- .password_mode{SwkbdPasswordMode::Disabled},
- .text_draw_type{text_draw_type},
- .key_disable_flags{appear_arg.key_disable_flags},
- .use_blur_background{false},
- .enable_backspace_button{swkbd_calc_arg.enable_backspace_button},
- .enable_return_button{appear_arg.enable_return_button},
- .disable_cancel_button{appear_arg.disable_cancel_button},
- };
-
- frontend.InitializeKeyboard(
- true, std::move(initialize_parameters), {},
- [this](SwkbdReplyType reply_type, std::u16string submitted_text, s32 cursor_position) {
- SubmitTextInline(reply_type, submitted_text, cursor_position);
- });
- } else {
- std::u16string ok_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
- swkbd_config_common.ok_text.data(), swkbd_config_common.ok_text.size());
-
- std::u16string header_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
- swkbd_config_common.header_text.data(), swkbd_config_common.header_text.size());
-
- std::u16string sub_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
- swkbd_config_common.sub_text.data(), swkbd_config_common.sub_text.size());
-
- std::u16string guide_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
- swkbd_config_common.guide_text.data(), swkbd_config_common.guide_text.size());
-
- const u32 max_text_length =
- swkbd_config_common.max_text_length > 0 &&
- swkbd_config_common.max_text_length <= DEFAULT_MAX_TEXT_LENGTH
- ? swkbd_config_common.max_text_length
- : DEFAULT_MAX_TEXT_LENGTH;
-
- const u32 min_text_length = swkbd_config_common.min_text_length <= max_text_length
- ? swkbd_config_common.min_text_length
- : 0;
-
- const s32 initial_cursor_position = [this] {
- switch (swkbd_config_common.initial_cursor_position) {
- case SwkbdInitialCursorPosition::Start:
- default:
- return 0;
- case SwkbdInitialCursorPosition::End:
- return static_cast<s32>(initial_text.size());
- }
- }();
-
- const auto text_draw_type = [this, max_text_length] {
- switch (swkbd_config_common.text_draw_type) {
- case SwkbdTextDrawType::Line:
- default:
- return max_text_length <= 32 ? SwkbdTextDrawType::Line : SwkbdTextDrawType::Box;
- case SwkbdTextDrawType::Box:
- case SwkbdTextDrawType::DownloadCode:
- return swkbd_config_common.text_draw_type;
- }
- }();
-
- const auto enable_return_button = text_draw_type == SwkbdTextDrawType::Box
- ? swkbd_config_common.enable_return_button
- : false;
-
- const auto disable_cancel_button = swkbd_applet_version >= SwkbdAppletVersion::Version393227
- ? swkbd_config_new.disable_cancel_button
- : false;
-
- Core::Frontend::KeyboardInitializeParameters initialize_parameters{
- .ok_text{std::move(ok_text)},
- .header_text{std::move(header_text)},
- .sub_text{std::move(sub_text)},
- .guide_text{std::move(guide_text)},
- .initial_text{initial_text},
- .max_text_length{max_text_length},
- .min_text_length{min_text_length},
- .initial_cursor_position{initial_cursor_position},
- .type{swkbd_config_common.type},
- .password_mode{swkbd_config_common.password_mode},
- .text_draw_type{text_draw_type},
- .key_disable_flags{swkbd_config_common.key_disable_flags},
- .use_blur_background{swkbd_config_common.use_blur_background},
- .enable_backspace_button{true},
- .enable_return_button{enable_return_button},
- .disable_cancel_button{disable_cancel_button},
- };
-
- frontend.InitializeKeyboard(
- false, std::move(initialize_parameters),
- [this](SwkbdResult result, std::u16string submitted_text, bool confirmed) {
- SubmitTextNormal(result, submitted_text, confirmed);
- },
- {});
- }
+void SoftwareKeyboard::InitializeFrontendNormalKeyboard() {
+ std::u16string ok_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
+ swkbd_config_common.ok_text.data(), swkbd_config_common.ok_text.size());
+
+ std::u16string header_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
+ swkbd_config_common.header_text.data(), swkbd_config_common.header_text.size());
+
+ std::u16string sub_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
+ swkbd_config_common.sub_text.data(), swkbd_config_common.sub_text.size());
+
+ std::u16string guide_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
+ swkbd_config_common.guide_text.data(), swkbd_config_common.guide_text.size());
+
+ const u32 max_text_length =
+ swkbd_config_common.max_text_length > 0 &&
+ swkbd_config_common.max_text_length <= DEFAULT_MAX_TEXT_LENGTH
+ ? swkbd_config_common.max_text_length
+ : DEFAULT_MAX_TEXT_LENGTH;
+
+ const u32 min_text_length = swkbd_config_common.min_text_length <= max_text_length
+ ? swkbd_config_common.min_text_length
+ : 0;
+
+ const s32 initial_cursor_position = [this] {
+ switch (swkbd_config_common.initial_cursor_position) {
+ case SwkbdInitialCursorPosition::Start:
+ default:
+ return 0;
+ case SwkbdInitialCursorPosition::End:
+ return static_cast<s32>(initial_text.size());
+ }
+ }();
+
+ const auto text_draw_type = [this, max_text_length] {
+ switch (swkbd_config_common.text_draw_type) {
+ case SwkbdTextDrawType::Line:
+ default:
+ return max_text_length <= 32 ? SwkbdTextDrawType::Line : SwkbdTextDrawType::Box;
+ case SwkbdTextDrawType::Box:
+ case SwkbdTextDrawType::DownloadCode:
+ return swkbd_config_common.text_draw_type;
+ }
+ }();
+
+ const auto enable_return_button =
+ text_draw_type == SwkbdTextDrawType::Box ? swkbd_config_common.enable_return_button : false;
+
+ const auto disable_cancel_button = swkbd_applet_version >= SwkbdAppletVersion::Version393227
+ ? swkbd_config_new.disable_cancel_button
+ : false;
+
+ Core::Frontend::KeyboardInitializeParameters initialize_parameters{
+ .ok_text{std::move(ok_text)},
+ .header_text{std::move(header_text)},
+ .sub_text{std::move(sub_text)},
+ .guide_text{std::move(guide_text)},
+ .initial_text{initial_text},
+ .max_text_length{max_text_length},
+ .min_text_length{min_text_length},
+ .initial_cursor_position{initial_cursor_position},
+ .type{swkbd_config_common.type},
+ .password_mode{swkbd_config_common.password_mode},
+ .text_draw_type{text_draw_type},
+ .key_disable_flags{swkbd_config_common.key_disable_flags},
+ .use_blur_background{swkbd_config_common.use_blur_background},
+ .enable_backspace_button{true},
+ .enable_return_button{enable_return_button},
+ .disable_cancel_button{disable_cancel_button},
+ };
+
+ frontend.InitializeKeyboard(
+ false, std::move(initialize_parameters),
+ [this](SwkbdResult result, std::u16string submitted_text, bool confirmed) {
+ SubmitTextNormal(result, submitted_text, confirmed);
+ },
+ {});
+}
+
+void SoftwareKeyboard::InitializeFrontendInlineKeyboard(
+ Core::Frontend::KeyboardInitializeParameters initialize_parameters) {
+ frontend.InitializeKeyboard(
+ true, std::move(initialize_parameters), {},
+ [this](SwkbdReplyType reply_type, std::u16string submitted_text, s32 cursor_position) {
+ SubmitTextInline(reply_type, submitted_text, cursor_position);
+ });
+}
+
+void SoftwareKeyboard::InitializeFrontendInlineKeyboardOld() {
+ const auto& appear_arg = swkbd_calc_arg_old.appear_arg;
+
+ std::u16string ok_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
+ appear_arg.ok_text.data(), appear_arg.ok_text.size());
+
+ const u32 max_text_length =
+ appear_arg.max_text_length > 0 && appear_arg.max_text_length <= DEFAULT_MAX_TEXT_LENGTH
+ ? appear_arg.max_text_length
+ : DEFAULT_MAX_TEXT_LENGTH;
+
+ const u32 min_text_length =
+ appear_arg.min_text_length <= max_text_length ? appear_arg.min_text_length : 0;
+
+ const s32 initial_cursor_position = current_cursor_position > 0 ? current_cursor_position : 0;
+
+ const auto text_draw_type =
+ max_text_length <= 32 ? SwkbdTextDrawType::Line : SwkbdTextDrawType::Box;
+
+ Core::Frontend::KeyboardInitializeParameters initialize_parameters{
+ .ok_text{std::move(ok_text)},
+ .header_text{},
+ .sub_text{},
+ .guide_text{},
+ .initial_text{current_text},
+ .max_text_length{max_text_length},
+ .min_text_length{min_text_length},
+ .initial_cursor_position{initial_cursor_position},
+ .type{appear_arg.type},
+ .password_mode{SwkbdPasswordMode::Disabled},
+ .text_draw_type{text_draw_type},
+ .key_disable_flags{appear_arg.key_disable_flags},
+ .use_blur_background{false},
+ .enable_backspace_button{swkbd_calc_arg_old.enable_backspace_button},
+ .enable_return_button{appear_arg.enable_return_button},
+ .disable_cancel_button{appear_arg.disable_cancel_button},
+ };
+
+ InitializeFrontendInlineKeyboard(std::move(initialize_parameters));
+}
+
+void SoftwareKeyboard::InitializeFrontendInlineKeyboardNew() {
+ const auto& appear_arg = swkbd_calc_arg_new.appear_arg;
+
+ std::u16string ok_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
+ appear_arg.ok_text.data(), appear_arg.ok_text.size());
+
+ const u32 max_text_length =
+ appear_arg.max_text_length > 0 && appear_arg.max_text_length <= DEFAULT_MAX_TEXT_LENGTH
+ ? appear_arg.max_text_length
+ : DEFAULT_MAX_TEXT_LENGTH;
+
+ const u32 min_text_length =
+ appear_arg.min_text_length <= max_text_length ? appear_arg.min_text_length : 0;
+
+ const s32 initial_cursor_position = current_cursor_position > 0 ? current_cursor_position : 0;
+
+ const auto text_draw_type =
+ max_text_length <= 32 ? SwkbdTextDrawType::Line : SwkbdTextDrawType::Box;
+
+ Core::Frontend::KeyboardInitializeParameters initialize_parameters{
+ .ok_text{std::move(ok_text)},
+ .header_text{},
+ .sub_text{},
+ .guide_text{},
+ .initial_text{current_text},
+ .max_text_length{max_text_length},
+ .min_text_length{min_text_length},
+ .initial_cursor_position{initial_cursor_position},
+ .type{appear_arg.type},
+ .password_mode{SwkbdPasswordMode::Disabled},
+ .text_draw_type{text_draw_type},
+ .key_disable_flags{appear_arg.key_disable_flags},
+ .use_blur_background{false},
+ .enable_backspace_button{swkbd_calc_arg_new.enable_backspace_button},
+ .enable_return_button{appear_arg.enable_return_button},
+ .disable_cancel_button{appear_arg.disable_cancel_button},
+ };
+
+ InitializeFrontendInlineKeyboard(std::move(initialize_parameters));
}
void SoftwareKeyboard::ShowNormalKeyboard() {
@@ -614,14 +658,21 @@ void SoftwareKeyboard::ShowTextCheckDialog(SwkbdTextCheckResult text_check_resul
frontend.ShowTextCheckDialog(text_check_result, std::move(text_check_message));
}
-void SoftwareKeyboard::ShowInlineKeyboard() {
+void SoftwareKeyboard::ShowInlineKeyboard(
+ Core::Frontend::InlineAppearParameters appear_parameters) {
+ frontend.ShowInlineKeyboard(std::move(appear_parameters));
+
+ ChangeState(SwkbdState::InitializedIsShown);
+}
+
+void SoftwareKeyboard::ShowInlineKeyboardOld() {
if (swkbd_state != SwkbdState::InitializedIsHidden) {
return;
}
ChangeState(SwkbdState::InitializedIsAppearing);
- const auto& appear_arg = swkbd_calc_arg.appear_arg;
+ const auto& appear_arg = swkbd_calc_arg_old.appear_arg;
const u32 max_text_length =
appear_arg.max_text_length > 0 && appear_arg.max_text_length <= DEFAULT_MAX_TEXT_LENGTH
@@ -634,21 +685,54 @@ void SoftwareKeyboard::ShowInlineKeyboard() {
Core::Frontend::InlineAppearParameters appear_parameters{
.max_text_length{max_text_length},
.min_text_length{min_text_length},
- .key_top_scale_x{swkbd_calc_arg.key_top_scale_x},
- .key_top_scale_y{swkbd_calc_arg.key_top_scale_y},
- .key_top_translate_x{swkbd_calc_arg.key_top_translate_x},
- .key_top_translate_y{swkbd_calc_arg.key_top_translate_y},
+ .key_top_scale_x{swkbd_calc_arg_old.key_top_scale_x},
+ .key_top_scale_y{swkbd_calc_arg_old.key_top_scale_y},
+ .key_top_translate_x{swkbd_calc_arg_old.key_top_translate_x},
+ .key_top_translate_y{swkbd_calc_arg_old.key_top_translate_y},
.type{appear_arg.type},
.key_disable_flags{appear_arg.key_disable_flags},
- .key_top_as_floating{swkbd_calc_arg.key_top_as_floating},
- .enable_backspace_button{swkbd_calc_arg.enable_backspace_button},
+ .key_top_as_floating{swkbd_calc_arg_old.key_top_as_floating},
+ .enable_backspace_button{swkbd_calc_arg_old.enable_backspace_button},
.enable_return_button{appear_arg.enable_return_button},
.disable_cancel_button{appear_arg.disable_cancel_button},
};
- frontend.ShowInlineKeyboard(std::move(appear_parameters));
+ ShowInlineKeyboard(std::move(appear_parameters));
+}
- ChangeState(SwkbdState::InitializedIsShown);
+void SoftwareKeyboard::ShowInlineKeyboardNew() {
+ if (swkbd_state != SwkbdState::InitializedIsHidden) {
+ return;
+ }
+
+ ChangeState(SwkbdState::InitializedIsAppearing);
+
+ const auto& appear_arg = swkbd_calc_arg_new.appear_arg;
+
+ const u32 max_text_length =
+ appear_arg.max_text_length > 0 && appear_arg.max_text_length <= DEFAULT_MAX_TEXT_LENGTH
+ ? appear_arg.max_text_length
+ : DEFAULT_MAX_TEXT_LENGTH;
+
+ const u32 min_text_length =
+ appear_arg.min_text_length <= max_text_length ? appear_arg.min_text_length : 0;
+
+ Core::Frontend::InlineAppearParameters appear_parameters{
+ .max_text_length{max_text_length},
+ .min_text_length{min_text_length},
+ .key_top_scale_x{swkbd_calc_arg_new.key_top_scale_x},
+ .key_top_scale_y{swkbd_calc_arg_new.key_top_scale_y},
+ .key_top_translate_x{swkbd_calc_arg_new.key_top_translate_x},
+ .key_top_translate_y{swkbd_calc_arg_new.key_top_translate_y},
+ .type{appear_arg.type},
+ .key_disable_flags{appear_arg.key_disable_flags},
+ .key_top_as_floating{swkbd_calc_arg_new.key_top_as_floating},
+ .enable_backspace_button{swkbd_calc_arg_new.enable_backspace_button},
+ .enable_return_button{appear_arg.enable_return_button},
+ .disable_cancel_button{appear_arg.disable_cancel_button},
+ };
+
+ ShowInlineKeyboard(std::move(appear_parameters));
}
void SoftwareKeyboard::HideInlineKeyboard() {
@@ -693,6 +777,8 @@ void SoftwareKeyboard::RequestFinalize(const std::vector<u8>& request_data) {
void SoftwareKeyboard::RequestSetUserWordInfo(const std::vector<u8>& request_data) {
LOG_WARNING(Service_AM, "SetUserWordInfo is not implemented.");
+
+ ReplyReleasedUserWordInfo();
}
void SoftwareKeyboard::RequestSetCustomizeDic(const std::vector<u8>& request_data) {
@@ -702,53 +788,135 @@ void SoftwareKeyboard::RequestSetCustomizeDic(const std::vector<u8>& request_dat
void SoftwareKeyboard::RequestCalc(const std::vector<u8>& request_data) {
LOG_DEBUG(Service_AM, "Processing Request: Calc");
- ASSERT(request_data.size() == sizeof(SwkbdRequestCommand) + sizeof(SwkbdCalcArg));
+ ASSERT(request_data.size() >= sizeof(SwkbdRequestCommand) + sizeof(SwkbdCalcArgCommon));
- std::memcpy(&swkbd_calc_arg, request_data.data() + sizeof(SwkbdRequestCommand),
- sizeof(SwkbdCalcArg));
+ std::memcpy(&swkbd_calc_arg_common, request_data.data() + sizeof(SwkbdRequestCommand),
+ sizeof(SwkbdCalcArgCommon));
+
+ switch (swkbd_calc_arg_common.calc_arg_size) {
+ case sizeof(SwkbdCalcArgCommon) + sizeof(SwkbdCalcArgOld):
+ ASSERT(request_data.size() ==
+ sizeof(SwkbdRequestCommand) + sizeof(SwkbdCalcArgCommon) + sizeof(SwkbdCalcArgOld));
+ std::memcpy(&swkbd_calc_arg_old,
+ request_data.data() + sizeof(SwkbdRequestCommand) + sizeof(SwkbdCalcArgCommon),
+ sizeof(SwkbdCalcArgOld));
+ RequestCalcOld();
+ break;
+ case sizeof(SwkbdCalcArgCommon) + sizeof(SwkbdCalcArgNew):
+ ASSERT(request_data.size() ==
+ sizeof(SwkbdRequestCommand) + sizeof(SwkbdCalcArgCommon) + sizeof(SwkbdCalcArgNew));
+ std::memcpy(&swkbd_calc_arg_new,
+ request_data.data() + sizeof(SwkbdRequestCommand) + sizeof(SwkbdCalcArgCommon),
+ sizeof(SwkbdCalcArgNew));
+ RequestCalcNew();
+ break;
+ default:
+ UNIMPLEMENTED_MSG("Unknown SwkbdCalcArg size={}", swkbd_calc_arg_common.calc_arg_size);
+ ASSERT(request_data.size() >=
+ sizeof(SwkbdRequestCommand) + sizeof(SwkbdCalcArgCommon) + sizeof(SwkbdCalcArgNew));
+ std::memcpy(&swkbd_calc_arg_new,
+ request_data.data() + sizeof(SwkbdRequestCommand) + sizeof(SwkbdCalcArgCommon),
+ sizeof(SwkbdCalcArgNew));
+ RequestCalcNew();
+ break;
+ }
+}
+
+void SoftwareKeyboard::RequestCalcOld() {
+ if (swkbd_calc_arg_common.flags.set_input_text) {
+ current_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
+ swkbd_calc_arg_old.input_text.data(), swkbd_calc_arg_old.input_text.size());
+ }
+
+ if (swkbd_calc_arg_common.flags.set_cursor_position) {
+ current_cursor_position = swkbd_calc_arg_old.cursor_position;
+ }
+
+ if (swkbd_calc_arg_common.flags.set_utf8_mode) {
+ inline_use_utf8 = swkbd_calc_arg_old.utf8_mode;
+ }
+
+ if (swkbd_state <= SwkbdState::InitializedIsHidden &&
+ swkbd_calc_arg_common.flags.unset_customize_dic) {
+ ReplyUnsetCustomizeDic();
+ }
+
+ if (swkbd_state <= SwkbdState::InitializedIsHidden &&
+ swkbd_calc_arg_common.flags.unset_user_word_info) {
+ ReplyReleasedUserWordInfo();
+ }
+
+ if (swkbd_state == SwkbdState::NotInitialized &&
+ swkbd_calc_arg_common.flags.set_initialize_arg) {
+ InitializeFrontendInlineKeyboardOld();
+
+ ChangeState(SwkbdState::InitializedIsHidden);
+
+ ReplyFinishedInitialize();
+ }
+
+ if (!swkbd_calc_arg_common.flags.set_initialize_arg &&
+ (swkbd_calc_arg_common.flags.set_input_text ||
+ swkbd_calc_arg_common.flags.set_cursor_position)) {
+ InlineTextChanged();
+ }
+
+ if (swkbd_state == SwkbdState::InitializedIsHidden && swkbd_calc_arg_common.flags.appear) {
+ ShowInlineKeyboardOld();
+ return;
+ }
+
+ if (swkbd_state == SwkbdState::InitializedIsShown && swkbd_calc_arg_common.flags.disappear) {
+ HideInlineKeyboard();
+ return;
+ }
+}
- if (swkbd_calc_arg.flags.set_input_text) {
+void SoftwareKeyboard::RequestCalcNew() {
+ if (swkbd_calc_arg_common.flags.set_input_text) {
current_text = Common::UTF16StringFromFixedZeroTerminatedBuffer(
- swkbd_calc_arg.input_text.data(), swkbd_calc_arg.input_text.size());
+ swkbd_calc_arg_new.input_text.data(), swkbd_calc_arg_new.input_text.size());
}
- if (swkbd_calc_arg.flags.set_cursor_position) {
- current_cursor_position = swkbd_calc_arg.cursor_position;
+ if (swkbd_calc_arg_common.flags.set_cursor_position) {
+ current_cursor_position = swkbd_calc_arg_new.cursor_position;
}
- if (swkbd_calc_arg.flags.set_utf8_mode) {
- inline_use_utf8 = swkbd_calc_arg.utf8_mode;
+ if (swkbd_calc_arg_common.flags.set_utf8_mode) {
+ inline_use_utf8 = swkbd_calc_arg_new.utf8_mode;
}
if (swkbd_state <= SwkbdState::InitializedIsHidden &&
- swkbd_calc_arg.flags.unset_customize_dic) {
+ swkbd_calc_arg_common.flags.unset_customize_dic) {
ReplyUnsetCustomizeDic();
}
if (swkbd_state <= SwkbdState::InitializedIsHidden &&
- swkbd_calc_arg.flags.unset_user_word_info) {
+ swkbd_calc_arg_common.flags.unset_user_word_info) {
ReplyReleasedUserWordInfo();
}
- if (swkbd_state == SwkbdState::NotInitialized && swkbd_calc_arg.flags.set_initialize_arg) {
- InitializeFrontendKeyboard();
+ if (swkbd_state == SwkbdState::NotInitialized &&
+ swkbd_calc_arg_common.flags.set_initialize_arg) {
+ InitializeFrontendInlineKeyboardNew();
ChangeState(SwkbdState::InitializedIsHidden);
ReplyFinishedInitialize();
}
- if (!swkbd_calc_arg.flags.set_initialize_arg &&
- (swkbd_calc_arg.flags.set_input_text || swkbd_calc_arg.flags.set_cursor_position)) {
+ if (!swkbd_calc_arg_common.flags.set_initialize_arg &&
+ (swkbd_calc_arg_common.flags.set_input_text ||
+ swkbd_calc_arg_common.flags.set_cursor_position)) {
InlineTextChanged();
}
- if (swkbd_state == SwkbdState::InitializedIsHidden && swkbd_calc_arg.flags.appear) {
- ShowInlineKeyboard();
+ if (swkbd_state == SwkbdState::InitializedIsHidden && swkbd_calc_arg_common.flags.appear) {
+ ShowInlineKeyboardNew();
return;
}
- if (swkbd_state == SwkbdState::InitializedIsShown && swkbd_calc_arg.flags.disappear) {
+ if (swkbd_state == SwkbdState::InitializedIsShown && swkbd_calc_arg_common.flags.disappear) {
HideInlineKeyboard();
return;
}
diff --git a/src/core/hle/service/am/applets/applet_software_keyboard.h b/src/core/hle/service/am/applets/applet_software_keyboard.h
index a0fddd965..7ee4c5eea 100644
--- a/src/core/hle/service/am/applets/applet_software_keyboard.h
+++ b/src/core/hle/service/am/applets/applet_software_keyboard.h
@@ -13,6 +13,11 @@ namespace Core {
class System;
}
+namespace Core::Frontend {
+struct KeyboardInitializeParameters;
+struct InlineAppearParameters;
+} // namespace Core::Frontend
+
namespace Service::AM::Applets {
class SoftwareKeyboard final : public Applet {
@@ -78,13 +83,22 @@ private:
void ChangeState(SwkbdState state);
/**
- * Signals the frontend to initialize the software keyboard with common parameters.
- * This initializes either the normal software keyboard or the inline software keyboard
- * depending on the state of is_background.
+ * Signals the frontend to initialize the normal software keyboard with common parameters.
* Note that this does not cause the keyboard to appear.
- * Use the respective Show*Keyboard() functions to cause the respective keyboards to appear.
+ * Use the ShowNormalKeyboard() functions to cause the keyboard to appear.
*/
- void InitializeFrontendKeyboard();
+ void InitializeFrontendNormalKeyboard();
+
+ /**
+ * Signals the frontend to initialize the inline software keyboard with common parameters.
+ * Note that this does not cause the keyboard to appear.
+ * Use the ShowInlineKeyboard() to cause the keyboard to appear.
+ */
+ void InitializeFrontendInlineKeyboard(
+ Core::Frontend::KeyboardInitializeParameters initialize_parameters);
+
+ void InitializeFrontendInlineKeyboardOld();
+ void InitializeFrontendInlineKeyboardNew();
/// Signals the frontend to show the normal software keyboard.
void ShowNormalKeyboard();
@@ -94,7 +108,10 @@ private:
std::u16string text_check_message);
/// Signals the frontend to show the inline software keyboard.
- void ShowInlineKeyboard();
+ void ShowInlineKeyboard(Core::Frontend::InlineAppearParameters appear_parameters);
+
+ void ShowInlineKeyboardOld();
+ void ShowInlineKeyboardNew();
/// Signals the frontend to hide the inline software keyboard.
void HideInlineKeyboard();
@@ -111,6 +128,8 @@ private:
void RequestSetUserWordInfo(const std::vector<u8>& request_data);
void RequestSetCustomizeDic(const std::vector<u8>& request_data);
void RequestCalc(const std::vector<u8>& request_data);
+ void RequestCalcOld();
+ void RequestCalcNew();
void RequestSetCustomizedDictionaries(const std::vector<u8>& request_data);
void RequestUnsetCustomizedDictionaries(const std::vector<u8>& request_data);
void RequestSetChangedStringV2Flag(const std::vector<u8>& request_data);
@@ -149,7 +168,9 @@ private:
SwkbdState swkbd_state{SwkbdState::NotInitialized};
SwkbdInitializeArg swkbd_initialize_arg;
- SwkbdCalcArg swkbd_calc_arg;
+ SwkbdCalcArgCommon swkbd_calc_arg_common;
+ SwkbdCalcArgOld swkbd_calc_arg_old;
+ SwkbdCalcArgNew swkbd_calc_arg_new;
bool use_changed_string_v2{false};
bool use_moved_cursor_v2{false};
bool inline_use_utf8{false};
diff --git a/src/core/hle/service/am/applets/applet_software_keyboard_types.h b/src/core/hle/service/am/applets/applet_software_keyboard_types.h
index 21aa8e800..de1ca7aa5 100644
--- a/src/core/hle/service/am/applets/applet_software_keyboard_types.h
+++ b/src/core/hle/service/am/applets/applet_software_keyboard_types.h
@@ -10,6 +10,7 @@
#include "common/common_funcs.h"
#include "common/common_types.h"
#include "common/swap.h"
+#include "common/uuid.h"
namespace Service::AM::Applets {
@@ -216,7 +217,7 @@ struct SwkbdInitializeArg {
};
static_assert(sizeof(SwkbdInitializeArg) == 0x8, "SwkbdInitializeArg has incorrect size.");
-struct SwkbdAppearArg {
+struct SwkbdAppearArgOld {
SwkbdType type{};
std::array<char16_t, MAX_OK_TEXT_LENGTH + 1> ok_text{};
char16_t left_optional_symbol_key{};
@@ -229,19 +230,76 @@ struct SwkbdAppearArg {
bool enable_return_button{};
INSERT_PADDING_BYTES(3);
u32 flags{};
- INSERT_PADDING_WORDS(6);
+ bool is_use_save_data{};
+ INSERT_PADDING_BYTES(7);
+ Common::UUID user_id{};
};
-static_assert(sizeof(SwkbdAppearArg) == 0x48, "SwkbdAppearArg has incorrect size.");
+static_assert(sizeof(SwkbdAppearArgOld) == 0x48, "SwkbdAppearArg has incorrect size.");
-struct SwkbdCalcArg {
+struct SwkbdAppearArgNew {
+ SwkbdType type{};
+ std::array<char16_t, MAX_OK_TEXT_LENGTH + 1> ok_text{};
+ char16_t left_optional_symbol_key{};
+ char16_t right_optional_symbol_key{};
+ bool use_prediction{};
+ bool disable_cancel_button{};
+ SwkbdKeyDisableFlags key_disable_flags{};
+ u32 max_text_length{};
+ u32 min_text_length{};
+ bool enable_return_button{};
+ INSERT_PADDING_BYTES(3);
+ u32 flags{};
+ bool is_use_save_data{};
+ INSERT_PADDING_BYTES(7);
+ Common::UUID user_id{};
+ u64 start_sampling_number{};
+ INSERT_PADDING_WORDS(8);
+};
+static_assert(sizeof(SwkbdAppearArgNew) == 0x70, "SwkbdAppearArg has incorrect size.");
+
+struct SwkbdCalcArgCommon {
u32 unknown{};
u16 calc_arg_size{};
INSERT_PADDING_BYTES(2);
SwkbdCalcArgFlags flags{};
SwkbdInitializeArg initialize_arg{};
+};
+static_assert(sizeof(SwkbdCalcArgCommon) == 0x18, "SwkbdCalcArgCommon has incorrect size.");
+
+struct SwkbdCalcArgOld {
+ f32 volume{};
+ s32 cursor_position{};
+ SwkbdAppearArgOld appear_arg{};
+ std::array<char16_t, 0x1FA> input_text{};
+ bool utf8_mode{};
+ INSERT_PADDING_BYTES(1);
+ bool enable_backspace_button{};
+ INSERT_PADDING_BYTES(3);
+ bool key_top_as_floating{};
+ bool footer_scalable{};
+ bool alpha_enabled_in_input_mode{};
+ u8 input_mode_fade_type{};
+ bool disable_touch{};
+ bool disable_hardware_keyboard{};
+ INSERT_PADDING_BYTES(8);
+ f32 key_top_scale_x{};
+ f32 key_top_scale_y{};
+ f32 key_top_translate_x{};
+ f32 key_top_translate_y{};
+ f32 key_top_bg_alpha{};
+ f32 footer_bg_alpha{};
+ f32 balloon_scale{};
+ INSERT_PADDING_WORDS(4);
+ u8 se_group{};
+ INSERT_PADDING_BYTES(3);
+};
+static_assert(sizeof(SwkbdCalcArgOld) == 0x4A0 - sizeof(SwkbdCalcArgCommon),
+ "SwkbdCalcArgOld has incorrect size.");
+
+struct SwkbdCalcArgNew {
+ SwkbdAppearArgNew appear_arg{};
f32 volume{};
s32 cursor_position{};
- SwkbdAppearArg appear_arg{};
std::array<char16_t, 0x1FA> input_text{};
bool utf8_mode{};
INSERT_PADDING_BYTES(1);
@@ -264,8 +322,10 @@ struct SwkbdCalcArg {
INSERT_PADDING_WORDS(4);
u8 se_group{};
INSERT_PADDING_BYTES(3);
+ INSERT_PADDING_WORDS(8);
};
-static_assert(sizeof(SwkbdCalcArg) == 0x4A0, "SwkbdCalcArg has incorrect size.");
+static_assert(sizeof(SwkbdCalcArgNew) == 0x4E8 - sizeof(SwkbdCalcArgCommon),
+ "SwkbdCalcArgNew has incorrect size.");
struct SwkbdChangedStringArg {
u32 text_length{};
diff --git a/src/core/hle/service/am/applets/applet_web_browser.cpp b/src/core/hle/service/am/applets/applet_web_browser.cpp
index bb5cb61be..a4b3fb187 100644
--- a/src/core/hle/service/am/applets/applet_web_browser.cpp
+++ b/src/core/hle/service/am/applets/applet_web_browser.cpp
@@ -446,6 +446,14 @@ void WebBrowser::ExecuteLogin() {
}
void WebBrowser::ExecuteOffline() {
+ // TODO (Morph): This is a hack for WebSession foreground web applets such as those used by
+ // Super Mario 3D All-Stars.
+ // TODO (Morph): Implement WebSession.
+ if (applet_mode == LibraryAppletMode::AllForegroundInitiallyHidden) {
+ LOG_WARNING(Service_AM, "WebSession is not implemented");
+ return;
+ }
+
const auto main_url = GetMainURL(Common::FS::PathToUTF8String(offline_document));
if (!Common::FS::Exists(main_url)) {
diff --git a/src/core/hle/service/am/applets/applets.cpp b/src/core/hle/service/am/applets/applets.cpp
index 134ac1ee2..1f4c9786a 100644
--- a/src/core/hle/service/am/applets/applets.cpp
+++ b/src/core/hle/service/am/applets/applets.cpp
@@ -9,6 +9,7 @@
#include "core/frontend/applets/controller.h"
#include "core/frontend/applets/error.h"
#include "core/frontend/applets/general_frontend.h"
+#include "core/frontend/applets/mii_edit.h"
#include "core/frontend/applets/profile_select.h"
#include "core/frontend/applets/software_keyboard.h"
#include "core/frontend/applets/web_browser.h"
@@ -19,6 +20,7 @@
#include "core/hle/service/am/applets/applet_controller.h"
#include "core/hle/service/am/applets/applet_error.h"
#include "core/hle/service/am/applets/applet_general_backend.h"
+#include "core/hle/service/am/applets/applet_mii_edit.h"
#include "core/hle/service/am/applets/applet_profile_select.h"
#include "core/hle/service/am/applets/applet_software_keyboard.h"
#include "core/hle/service/am/applets/applet_web_browser.h"
@@ -171,11 +173,12 @@ void Applet::Initialize() {
AppletFrontendSet::AppletFrontendSet() = default;
AppletFrontendSet::AppletFrontendSet(ControllerApplet controller_applet, ErrorApplet error_applet,
+ MiiEdit mii_edit_,
ParentalControlsApplet parental_controls_applet,
PhotoViewer photo_viewer_, ProfileSelect profile_select_,
SoftwareKeyboard software_keyboard_, WebBrowser web_browser_)
: controller{std::move(controller_applet)}, error{std::move(error_applet)},
- parental_controls{std::move(parental_controls_applet)},
+ mii_edit{std::move(mii_edit_)}, parental_controls{std::move(parental_controls_applet)},
photo_viewer{std::move(photo_viewer_)}, profile_select{std::move(profile_select_)},
software_keyboard{std::move(software_keyboard_)}, web_browser{std::move(web_browser_)} {}
@@ -202,6 +205,10 @@ void AppletManager::SetAppletFrontendSet(AppletFrontendSet set) {
frontend.error = std::move(set.error);
}
+ if (set.mii_edit != nullptr) {
+ frontend.mii_edit = std::move(set.mii_edit);
+ }
+
if (set.parental_controls != nullptr) {
frontend.parental_controls = std::move(set.parental_controls);
}
@@ -238,6 +245,10 @@ void AppletManager::SetDefaultAppletsIfMissing() {
frontend.error = std::make_unique<Core::Frontend::DefaultErrorApplet>();
}
+ if (frontend.mii_edit == nullptr) {
+ frontend.mii_edit = std::make_unique<Core::Frontend::DefaultMiiEditApplet>();
+ }
+
if (frontend.parental_controls == nullptr) {
frontend.parental_controls =
std::make_unique<Core::Frontend::DefaultParentalControlsApplet>();
@@ -277,6 +288,8 @@ std::shared_ptr<Applet> AppletManager::GetApplet(AppletId id, LibraryAppletMode
return std::make_shared<ProfileSelect>(system, mode, *frontend.profile_select);
case AppletId::SoftwareKeyboard:
return std::make_shared<SoftwareKeyboard>(system, mode, *frontend.software_keyboard);
+ case AppletId::MiiEdit:
+ return std::make_shared<MiiEdit>(system, mode, *frontend.mii_edit);
case AppletId::Web:
case AppletId::Shop:
case AppletId::OfflineWeb:
diff --git a/src/core/hle/service/am/applets/applets.h b/src/core/hle/service/am/applets/applets.h
index 15eeb4ee1..50a7bdceb 100644
--- a/src/core/hle/service/am/applets/applets.h
+++ b/src/core/hle/service/am/applets/applets.h
@@ -20,6 +20,7 @@ namespace Core::Frontend {
class ControllerApplet;
class ECommerceApplet;
class ErrorApplet;
+class MiiEditApplet;
class ParentalControlsApplet;
class PhotoViewerApplet;
class ProfileSelectApplet;
@@ -178,6 +179,7 @@ protected:
struct AppletFrontendSet {
using ControllerApplet = std::unique_ptr<Core::Frontend::ControllerApplet>;
using ErrorApplet = std::unique_ptr<Core::Frontend::ErrorApplet>;
+ using MiiEdit = std::unique_ptr<Core::Frontend::MiiEditApplet>;
using ParentalControlsApplet = std::unique_ptr<Core::Frontend::ParentalControlsApplet>;
using PhotoViewer = std::unique_ptr<Core::Frontend::PhotoViewerApplet>;
using ProfileSelect = std::unique_ptr<Core::Frontend::ProfileSelectApplet>;
@@ -186,9 +188,9 @@ struct AppletFrontendSet {
AppletFrontendSet();
AppletFrontendSet(ControllerApplet controller_applet, ErrorApplet error_applet,
- ParentalControlsApplet parental_controls_applet, PhotoViewer photo_viewer_,
- ProfileSelect profile_select_, SoftwareKeyboard software_keyboard_,
- WebBrowser web_browser_);
+ MiiEdit mii_edit_, ParentalControlsApplet parental_controls_applet,
+ PhotoViewer photo_viewer_, ProfileSelect profile_select_,
+ SoftwareKeyboard software_keyboard_, WebBrowser web_browser_);
~AppletFrontendSet();
AppletFrontendSet(const AppletFrontendSet&) = delete;
@@ -199,6 +201,7 @@ struct AppletFrontendSet {
ControllerApplet controller;
ErrorApplet error;
+ MiiEdit mii_edit;
ParentalControlsApplet parental_controls;
PhotoViewer photo_viewer;
ProfileSelect profile_select;
diff --git a/src/core/hle/service/audio/audout_u.cpp b/src/core/hle/service/audio/audout_u.cpp
index affa7971c..a72956a28 100644
--- a/src/core/hle/service/audio/audout_u.cpp
+++ b/src/core/hle/service/audio/audout_u.cpp
@@ -41,9 +41,10 @@ public:
explicit IAudioOut(Core::System& system_, AudoutParams audio_params_,
AudioCore::AudioOut& audio_core_, std::string&& device_name_,
std::string&& unique_name)
- : ServiceFramework{system_, "IAudioOut"}, audio_core{audio_core_},
- device_name{std::move(device_name_)}, audio_params{audio_params_},
- main_memory{system.Memory()}, service_context{system_, "IAudioOut"} {
+ : ServiceFramework{system_, "IAudioOut", ServiceThreadType::CreateNew},
+ audio_core{audio_core_}, device_name{std::move(device_name_)},
+ audio_params{audio_params_}, main_memory{system.Memory()}, service_context{system_,
+ "IAudioOut"} {
// clang-format off
static const FunctionInfo functions[] = {
{0, &IAudioOut::GetAudioOutState, "GetAudioOutState"},
diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp
index f45e5cecc..d4ffeb21d 100644
--- a/src/core/hle/service/audio/audren_u.cpp
+++ b/src/core/hle/service/audio/audren_u.cpp
@@ -24,7 +24,8 @@ public:
explicit IAudioRenderer(Core::System& system_,
const AudioCommon::AudioRendererParameter& audren_params,
const std::size_t instance_number)
- : ServiceFramework{system_, "IAudioRenderer"}, service_context{system_, "IAudioRenderer"} {
+ : ServiceFramework{system_, "IAudioRenderer", ServiceThreadType::CreateNew},
+ service_context{system_, "IAudioRenderer"} {
// clang-format off
static const FunctionInfo functions[] = {
{0, &IAudioRenderer::GetSampleRate, "GetSampleRate"},
diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp
index 3703ca4c6..4208337db 100644
--- a/src/core/hle/service/filesystem/filesystem.cpp
+++ b/src/core/hle/service/filesystem/filesystem.cpp
@@ -174,7 +174,7 @@ ResultCode VfsDirectoryServiceWrapper::RenameFile(const std::string& src_path_,
ASSERT_MSG(dest != nullptr, "Newly created file with success cannot be found.");
ASSERT_MSG(dest->WriteBytes(src->ReadAllBytes()) == src->GetSize(),
- "Could not write all of the bytes but everything else has succeded.");
+ "Could not write all of the bytes but everything else has succeeded.");
if (!src->GetContainingDirectory()->DeleteFile(Common::FS::GetFilename(src_path))) {
// TODO(DarkLordZach): Find a better error code for this
diff --git a/src/core/hle/service/filesystem/fsp_srv.cpp b/src/core/hle/service/filesystem/fsp_srv.cpp
index b087e7bba..c07929ab8 100644
--- a/src/core/hle/service/filesystem/fsp_srv.cpp
+++ b/src/core/hle/service/filesystem/fsp_srv.cpp
@@ -58,7 +58,8 @@ enum class FileSystemType : u8 {
class IStorage final : public ServiceFramework<IStorage> {
public:
explicit IStorage(Core::System& system_, FileSys::VirtualFile backend_)
- : ServiceFramework{system_, "IStorage"}, backend(std::move(backend_)) {
+ : ServiceFramework{system_, "IStorage", ServiceThreadType::CreateNew},
+ backend(std::move(backend_)) {
static const FunctionInfo functions[] = {
{0, &IStorage::Read, "Read"},
{1, nullptr, "Write"},
@@ -116,7 +117,8 @@ private:
class IFile final : public ServiceFramework<IFile> {
public:
explicit IFile(Core::System& system_, FileSys::VirtualFile backend_)
- : ServiceFramework{system_, "IFile"}, backend(std::move(backend_)) {
+ : ServiceFramework{system_, "IFile", ServiceThreadType::CreateNew},
+ backend(std::move(backend_)) {
static const FunctionInfo functions[] = {
{0, &IFile::Read, "Read"},
{1, &IFile::Write, "Write"},
@@ -252,7 +254,8 @@ static void BuildEntryIndex(std::vector<FileSys::Entry>& entries, const std::vec
class IDirectory final : public ServiceFramework<IDirectory> {
public:
explicit IDirectory(Core::System& system_, FileSys::VirtualDir backend_)
- : ServiceFramework{system_, "IDirectory"}, backend(std::move(backend_)) {
+ : ServiceFramework{system_, "IDirectory", ServiceThreadType::CreateNew},
+ backend(std::move(backend_)) {
static const FunctionInfo functions[] = {
{0, &IDirectory::Read, "Read"},
{1, &IDirectory::GetEntryCount, "GetEntryCount"},
@@ -308,8 +311,8 @@ private:
class IFileSystem final : public ServiceFramework<IFileSystem> {
public:
explicit IFileSystem(Core::System& system_, FileSys::VirtualDir backend_, SizeGetter size_)
- : ServiceFramework{system_, "IFileSystem"}, backend{std::move(backend_)}, size{std::move(
- size_)} {
+ : ServiceFramework{system_, "IFileSystem", ServiceThreadType::CreateNew},
+ backend{std::move(backend_)}, size{std::move(size_)} {
static const FunctionInfo functions[] = {
{0, &IFileSystem::CreateFile, "CreateFile"},
{1, &IFileSystem::DeleteFile, "DeleteFile"},
diff --git a/src/core/hle/service/hid/controllers/console_sixaxis.cpp b/src/core/hle/service/hid/controllers/console_sixaxis.cpp
index a727b3582..8450eaf93 100644
--- a/src/core/hle/service/hid/controllers/console_sixaxis.cpp
+++ b/src/core/hle/service/hid/controllers/console_sixaxis.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "common/settings.h"
#include "core/core_timing.h"
#include "core/hid/emulated_console.h"
#include "core/hid/hid_core.h"
diff --git a/src/core/hle/service/hid/controllers/console_sixaxis.h b/src/core/hle/service/hid/controllers/console_sixaxis.h
index 26d153f0c..93454585a 100644
--- a/src/core/hle/service/hid/controllers/console_sixaxis.h
+++ b/src/core/hle/service/hid/controllers/console_sixaxis.h
@@ -8,7 +8,6 @@
#include "common/common_types.h"
#include "common/quaternion.h"
-#include "core/hid/hid_types.h"
#include "core/hle/service/hid/controllers/controller_base.h"
#include "core/hle/service/hid/ring_lifo.h"
diff --git a/src/core/hle/service/hid/controllers/controller_base.h b/src/core/hle/service/hid/controllers/controller_base.h
index 7450eb20a..5e464149c 100644
--- a/src/core/hle/service/hid/controllers/controller_base.h
+++ b/src/core/hle/service/hid/controllers/controller_base.h
@@ -5,7 +5,6 @@
#pragma once
#include "common/common_types.h"
-#include "common/swap.h"
namespace Core::Timing {
class CoreTiming;
diff --git a/src/core/hle/service/hid/controllers/debug_pad.h b/src/core/hle/service/hid/controllers/debug_pad.h
index afe374fc2..4396780a1 100644
--- a/src/core/hle/service/hid/controllers/debug_pad.h
+++ b/src/core/hle/service/hid/controllers/debug_pad.h
@@ -4,11 +4,8 @@
#pragma once
-#include <array>
#include "common/bit_field.h"
-#include "common/common_funcs.h"
#include "common/common_types.h"
-#include "common/swap.h"
#include "core/hle/service/hid/controllers/controller_base.h"
#include "core/hle/service/hid/ring_lifo.h"
diff --git a/src/core/hle/service/hid/controllers/keyboard.h b/src/core/hle/service/hid/controllers/keyboard.h
index cf62d3896..b869352b9 100644
--- a/src/core/hle/service/hid/controllers/keyboard.h
+++ b/src/core/hle/service/hid/controllers/keyboard.h
@@ -4,11 +4,7 @@
#pragma once
-#include <array>
-#include "common/bit_field.h"
-#include "common/common_funcs.h"
#include "common/common_types.h"
-#include "common/swap.h"
#include "core/hle/service/hid/controllers/controller_base.h"
#include "core/hle/service/hid/ring_lifo.h"
diff --git a/src/core/hle/service/hid/controllers/mouse.h b/src/core/hle/service/hid/controllers/mouse.h
index 7559fc78d..8858887b2 100644
--- a/src/core/hle/service/hid/controllers/mouse.h
+++ b/src/core/hle/service/hid/controllers/mouse.h
@@ -4,10 +4,7 @@
#pragma once
-#include <array>
-#include "common/bit_field.h"
#include "common/common_types.h"
-#include "common/swap.h"
#include "core/hle/service/hid/controllers/controller_base.h"
#include "core/hle/service/hid/ring_lifo.h"
diff --git a/src/core/hle/service/hid/controllers/npad.cpp b/src/core/hle/service/hid/controllers/npad.cpp
index e5c951e06..4e17a952e 100644
--- a/src/core/hle/service/hid/controllers/npad.cpp
+++ b/src/core/hle/service/hid/controllers/npad.cpp
@@ -262,11 +262,6 @@ void Controller_NPad::OnInit() {
service_context.CreateEvent(fmt::format("npad:NpadStyleSetChanged_{}", i));
}
- if (hid_core.GetSupportedStyleTag().raw == Core::HID::NpadStyleSet::None) {
- // We want to support all controllers
- hid_core.SetSupportedStyleTag({Core::HID::NpadStyleSet::All});
- }
-
supported_npad_id_types.resize(npad_id_list.size());
std::memcpy(supported_npad_id_types.data(), npad_id_list.data(),
npad_id_list.size() * sizeof(Core::HID::NpadIdType));
@@ -288,14 +283,6 @@ void Controller_NPad::OnInit() {
WriteEmptyEntry(npad);
}
}
-
- // Connect controllers
- for (auto& controller : controller_data) {
- const auto& device = controller.device;
- if (device->IsConnected()) {
- AddNewControllerAt(device->GetNpadStyleIndex(), device->GetNpadIdType());
- }
- }
}
void Controller_NPad::WriteEmptyEntry(NpadInternalState& npad) {
@@ -320,6 +307,7 @@ void Controller_NPad::WriteEmptyEntry(NpadInternalState& npad) {
}
void Controller_NPad::OnRelease() {
+ is_controller_initialized = false;
for (std::size_t i = 0; i < controller_data.size(); ++i) {
auto& controller = controller_data[i];
service_context.CloseEvent(controller.styleset_changed_event);
@@ -330,7 +318,7 @@ void Controller_NPad::OnRelease() {
}
void Controller_NPad::RequestPadStateUpdate(Core::HID::NpadIdType npad_id) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
auto& controller = GetControllerFromNpadIdType(npad_id);
const auto controller_type = controller.device->GetNpadStyleIndex();
if (!controller.device->IsConnected()) {
@@ -651,9 +639,27 @@ void Controller_NPad::OnMotionUpdate(const Core::Timing::CoreTiming& core_timing
void Controller_NPad::SetSupportedStyleSet(Core::HID::NpadStyleTag style_set) {
hid_core.SetSupportedStyleTag(style_set);
+
+ if (is_controller_initialized) {
+ return;
+ }
+
+ // Once SetSupportedStyleSet is called controllers are fully initialized
+ is_controller_initialized = true;
+
+ // Connect all active controllers
+ for (auto& controller : controller_data) {
+ const auto& device = controller.device;
+ if (device->IsConnected()) {
+ AddNewControllerAt(device->GetNpadStyleIndex(), device->GetNpadIdType());
+ }
+ }
}
Core::HID::NpadStyleTag Controller_NPad::GetSupportedStyleSet() const {
+ if (!is_controller_initialized) {
+ return {Core::HID::NpadStyleSet::None};
+ }
return hid_core.GetSupportedStyleTag();
}
diff --git a/src/core/hle/service/hid/controllers/npad.h b/src/core/hle/service/hid/controllers/npad.h
index 6b2872bad..967379f05 100644
--- a/src/core/hle/service/hid/controllers/npad.h
+++ b/src/core/hle/service/hid/controllers/npad.h
@@ -10,7 +10,8 @@
#include "common/bit_field.h"
#include "common/common_types.h"
-#include "common/quaternion.h"
+#include "common/vector_math.h"
+
#include "core/hid/hid_types.h"
#include "core/hle/service/hid/controllers/controller_base.h"
#include "core/hle/service/hid/ring_lifo.h"
@@ -190,16 +191,16 @@ private:
// This is nn::hid::detail::NpadFullKeyColorState
struct NpadFullKeyColorState {
- ColorAttribute attribute;
- Core::HID::NpadControllerColor fullkey;
+ ColorAttribute attribute{ColorAttribute::NoController};
+ Core::HID::NpadControllerColor fullkey{};
};
static_assert(sizeof(NpadFullKeyColorState) == 0xC, "NpadFullKeyColorState is an invalid size");
// This is nn::hid::detail::NpadJoyColorState
struct NpadJoyColorState {
- ColorAttribute attribute;
- Core::HID::NpadControllerColor left;
- Core::HID::NpadControllerColor right;
+ ColorAttribute attribute{ColorAttribute::NoController};
+ Core::HID::NpadControllerColor left{};
+ Core::HID::NpadControllerColor right{};
};
static_assert(sizeof(NpadJoyColorState) == 0x14, "NpadJoyColorState is an invalid size");
@@ -225,11 +226,11 @@ private:
// This is nn::hid::NpadPalmaState
// This is nn::hid::NpadSystemExtState
struct NPadGenericState {
- s64_le sampling_number;
- Core::HID::NpadButtonState npad_buttons;
- Core::HID::AnalogStickState l_stick;
- Core::HID::AnalogStickState r_stick;
- NpadAttribute connection_status;
+ s64_le sampling_number{};
+ Core::HID::NpadButtonState npad_buttons{};
+ Core::HID::AnalogStickState l_stick{};
+ Core::HID::AnalogStickState r_stick{};
+ NpadAttribute connection_status{};
INSERT_PADDING_BYTES(4); // Reserved
};
static_assert(sizeof(NPadGenericState) == 0x28, "NPadGenericState is an invalid size");
@@ -252,7 +253,7 @@ private:
Common::Vec3f gyro{};
Common::Vec3f rotation{};
std::array<Common::Vec3f, 3> orientation{};
- SixAxisSensorAttribute attribute;
+ SixAxisSensorAttribute attribute{};
INSERT_PADDING_BYTES(4); // Reserved
};
static_assert(sizeof(SixAxisSensorState) == 0x60, "SixAxisSensorState is an invalid size");
@@ -324,11 +325,11 @@ private:
// This is nn::hid::detail::NfcXcdDeviceHandleStateImpl
struct NfcXcdDeviceHandleStateImpl {
- u64 handle;
- bool is_available;
- bool is_activated;
+ u64 handle{};
+ bool is_available{};
+ bool is_activated{};
INSERT_PADDING_BYTES(0x6); // Reserved
- u64 sampling_number;
+ u64 sampling_number{};
};
static_assert(sizeof(NfcXcdDeviceHandleStateImpl) == 0x18,
"NfcXcdDeviceHandleStateImpl is an invalid size");
@@ -365,8 +366,8 @@ private:
};
struct AppletFooterUi {
- AppletFooterUiAttributes attributes;
- AppletFooterUiType type;
+ AppletFooterUiAttributes attributes{};
+ AppletFooterUiType type{AppletFooterUiType::None};
INSERT_PADDING_BYTES(0x5B); // Reserved
};
static_assert(sizeof(AppletFooterUi) == 0x60, "AppletFooterUi is an invalid size");
@@ -403,41 +404,41 @@ private:
// This is nn::hid::detail::NpadInternalState
struct NpadInternalState {
- Core::HID::NpadStyleTag style_tag;
- NpadJoyAssignmentMode assignment_mode;
- NpadFullKeyColorState fullkey_color;
- NpadJoyColorState joycon_color;
- Lifo<NPadGenericState, hid_entry_count> fullkey_lifo;
- Lifo<NPadGenericState, hid_entry_count> handheld_lifo;
- Lifo<NPadGenericState, hid_entry_count> joy_dual_lifo;
- Lifo<NPadGenericState, hid_entry_count> joy_left_lifo;
- Lifo<NPadGenericState, hid_entry_count> joy_right_lifo;
- Lifo<NPadGenericState, hid_entry_count> palma_lifo;
- Lifo<NPadGenericState, hid_entry_count> system_ext_lifo;
- Lifo<SixAxisSensorState, hid_entry_count> sixaxis_fullkey_lifo;
- Lifo<SixAxisSensorState, hid_entry_count> sixaxis_handheld_lifo;
- Lifo<SixAxisSensorState, hid_entry_count> sixaxis_dual_left_lifo;
- Lifo<SixAxisSensorState, hid_entry_count> sixaxis_dual_right_lifo;
- Lifo<SixAxisSensorState, hid_entry_count> sixaxis_left_lifo;
- Lifo<SixAxisSensorState, hid_entry_count> sixaxis_right_lifo;
- DeviceType device_type;
+ Core::HID::NpadStyleTag style_tag{Core::HID::NpadStyleSet::None};
+ NpadJoyAssignmentMode assignment_mode{NpadJoyAssignmentMode::Dual};
+ NpadFullKeyColorState fullkey_color{};
+ NpadJoyColorState joycon_color{};
+ Lifo<NPadGenericState, hid_entry_count> fullkey_lifo{};
+ Lifo<NPadGenericState, hid_entry_count> handheld_lifo{};
+ Lifo<NPadGenericState, hid_entry_count> joy_dual_lifo{};
+ Lifo<NPadGenericState, hid_entry_count> joy_left_lifo{};
+ Lifo<NPadGenericState, hid_entry_count> joy_right_lifo{};
+ Lifo<NPadGenericState, hid_entry_count> palma_lifo{};
+ Lifo<NPadGenericState, hid_entry_count> system_ext_lifo{};
+ Lifo<SixAxisSensorState, hid_entry_count> sixaxis_fullkey_lifo{};
+ Lifo<SixAxisSensorState, hid_entry_count> sixaxis_handheld_lifo{};
+ Lifo<SixAxisSensorState, hid_entry_count> sixaxis_dual_left_lifo{};
+ Lifo<SixAxisSensorState, hid_entry_count> sixaxis_dual_right_lifo{};
+ Lifo<SixAxisSensorState, hid_entry_count> sixaxis_left_lifo{};
+ Lifo<SixAxisSensorState, hid_entry_count> sixaxis_right_lifo{};
+ DeviceType device_type{};
INSERT_PADDING_BYTES(0x4); // Reserved
- NPadSystemProperties system_properties;
- NpadSystemButtonProperties button_properties;
- Core::HID::NpadBatteryLevel battery_level_dual;
- Core::HID::NpadBatteryLevel battery_level_left;
- Core::HID::NpadBatteryLevel battery_level_right;
+ NPadSystemProperties system_properties{};
+ NpadSystemButtonProperties button_properties{};
+ Core::HID::NpadBatteryLevel battery_level_dual{};
+ Core::HID::NpadBatteryLevel battery_level_left{};
+ Core::HID::NpadBatteryLevel battery_level_right{};
union {
- Lifo<NfcXcdDeviceHandleStateImpl, 0x2> nfc_xcd_device_lifo{};
- AppletFooterUi applet_footer;
+ AppletFooterUi applet_footer{};
+ Lifo<NfcXcdDeviceHandleStateImpl, 0x2> nfc_xcd_device_lifo;
};
INSERT_PADDING_BYTES(0x20); // Unknown
- Lifo<NpadGcTriggerState, hid_entry_count> gc_trigger_lifo;
- NpadLarkType lark_type_l_and_main;
- NpadLarkType lark_type_r;
- NpadLuciaType lucia_type;
- NpadLagonType lagon_type;
- NpadLagerType lager_type;
+ Lifo<NpadGcTriggerState, hid_entry_count> gc_trigger_lifo{};
+ NpadLarkType lark_type_l_and_main{};
+ NpadLarkType lark_type_r{};
+ NpadLuciaType lucia_type{};
+ NpadLagonType lagon_type{};
+ NpadLagerType lager_type{};
// FW 13.x Investigate there is some sort of bitflag related to joycons
INSERT_PADDING_BYTES(0x4);
INSERT_PADDING_BYTES(0xc08); // Unknown
@@ -510,7 +511,8 @@ private:
NpadHandheldActivationMode handheld_activation_mode{NpadHandheldActivationMode::Dual};
NpadCommunicationMode communication_mode{NpadCommunicationMode::Default};
bool permit_vibration_session_enabled{false};
- bool analog_stick_use_center_clamp{};
+ bool analog_stick_use_center_clamp{false};
bool is_in_lr_assignment_mode{false};
+ bool is_controller_initialized{false};
};
} // namespace Service::HID
diff --git a/src/core/hle/service/hid/controllers/touchscreen.cpp b/src/core/hle/service/hid/controllers/touchscreen.cpp
index 48978e5c6..65b799e78 100644
--- a/src/core/hle/service/hid/controllers/touchscreen.cpp
+++ b/src/core/hle/service/hid/controllers/touchscreen.cpp
@@ -5,7 +5,6 @@
#include <algorithm>
#include <cstring>
#include "common/common_types.h"
-#include "common/logging/log.h"
#include "common/settings.h"
#include "core/core.h"
#include "core/core_timing.h"
diff --git a/src/core/hle/service/hid/controllers/touchscreen.h b/src/core/hle/service/hid/controllers/touchscreen.h
index 708dde4f0..483552767 100644
--- a/src/core/hle/service/hid/controllers/touchscreen.h
+++ b/src/core/hle/service/hid/controllers/touchscreen.h
@@ -4,11 +4,8 @@
#pragma once
-#include "common/bit_field.h"
#include "common/common_funcs.h"
#include "common/common_types.h"
-#include "common/point.h"
-#include "common/swap.h"
#include "core/hid/hid_types.h"
#include "core/hle/service/hid/controllers/controller_base.h"
#include "core/hle/service/hid/ring_lifo.h"
diff --git a/src/core/hle/service/hid/controllers/xpad.h b/src/core/hle/service/hid/controllers/xpad.h
index ba8db8d9d..4973e1bd9 100644
--- a/src/core/hle/service/hid/controllers/xpad.h
+++ b/src/core/hle/service/hid/controllers/xpad.h
@@ -5,9 +5,7 @@
#pragma once
#include "common/bit_field.h"
-#include "common/common_funcs.h"
#include "common/common_types.h"
-#include "common/swap.h"
#include "core/hid/hid_types.h"
#include "core/hle/service/hid/controllers/controller_base.h"
#include "core/hle/service/hid/ring_lifo.h"
diff --git a/src/core/hle/service/hid/hid.cpp b/src/core/hle/service/hid/hid.cpp
index d9202ea6c..b2cec2253 100644
--- a/src/core/hle/service/hid/hid.cpp
+++ b/src/core/hle/service/hid/hid.cpp
@@ -878,6 +878,10 @@ void Hid::AcquireNpadStyleSetUpdateEventHandle(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_HID, "called, npad_id={}, applet_resource_user_id={}, unknown={}",
parameters.npad_id, parameters.applet_resource_user_id, parameters.unknown);
+ // Games expect this event to be signaled after calling this function
+ applet_resource->GetController<Controller_NPad>(HidController::NPad)
+ .SignalStyleSetChangedEvent(parameters.npad_id);
+
IPC::ResponseBuilder rb{ctx, 2, 1};
rb.Push(ResultSuccess);
rb.PushCopyObjects(applet_resource->GetController<Controller_NPad>(HidController::NPad)
diff --git a/src/core/hle/service/jit/jit.cpp b/src/core/hle/service/jit/jit.cpp
new file mode 100644
index 000000000..0f9e33ef6
--- /dev/null
+++ b/src/core/hle/service/jit/jit.cpp
@@ -0,0 +1,332 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include "core/arm/symbols.h"
+#include "core/core.h"
+#include "core/hle/ipc_helpers.h"
+#include "core/hle/kernel/k_code_memory.h"
+#include "core/hle/kernel/k_transfer_memory.h"
+#include "core/hle/result.h"
+#include "core/hle/service/jit/jit.h"
+#include "core/hle/service/jit/jit_context.h"
+#include "core/hle/service/service.h"
+#include "core/memory.h"
+
+namespace Service::JIT {
+
+struct CodeRange {
+ u64 offset;
+ u64 size;
+};
+
+class IJitEnvironment final : public ServiceFramework<IJitEnvironment> {
+public:
+ explicit IJitEnvironment(Core::System& system_, CodeRange user_rx, CodeRange user_ro)
+ : ServiceFramework{system_, "IJitEnvironment", ServiceThreadType::CreateNew},
+ context{system_.Memory()} {
+ // clang-format off
+ static const FunctionInfo functions[] = {
+ {0, &IJitEnvironment::GenerateCode, "GenerateCode"},
+ {1, &IJitEnvironment::Control, "Control"},
+ {1000, &IJitEnvironment::LoadPlugin, "LoadPlugin"},
+ {1001, &IJitEnvironment::GetCodeAddress, "GetCodeAddress"},
+ };
+ // clang-format on
+
+ RegisterHandlers(functions);
+
+ // Identity map user code range into sysmodule context
+ configuration.user_ro_memory = user_ro;
+ configuration.user_rx_memory = user_rx;
+ configuration.sys_ro_memory = user_ro;
+ configuration.sys_rx_memory = user_rx;
+ }
+
+ void GenerateCode(Kernel::HLERequestContext& ctx) {
+ struct Parameters {
+ u32 data_size;
+ u64 command;
+ CodeRange cr1;
+ CodeRange cr2;
+ Struct32 data;
+ };
+
+ IPC::RequestParser rp{ctx};
+ const auto parameters{rp.PopRaw<Parameters>()};
+ std::vector<u8> input_buffer{ctx.CanReadBuffer() ? ctx.ReadBuffer() : std::vector<u8>()};
+ std::vector<u8> output_buffer(ctx.CanWriteBuffer() ? ctx.GetWriteBufferSize() : 0);
+
+ const VAddr return_ptr{context.AddHeap(0u)};
+ const VAddr cr1_in_ptr{context.AddHeap(parameters.cr1)};
+ const VAddr cr2_in_ptr{context.AddHeap(parameters.cr2)};
+ const VAddr cr1_out_ptr{
+ context.AddHeap(CodeRange{.offset = parameters.cr1.offset, .size = 0})};
+ const VAddr cr2_out_ptr{
+ context.AddHeap(CodeRange{.offset = parameters.cr2.offset, .size = 0})};
+ const VAddr input_ptr{context.AddHeap(input_buffer.data(), input_buffer.size())};
+ const VAddr output_ptr{context.AddHeap(output_buffer.data(), output_buffer.size())};
+ const VAddr data_ptr{context.AddHeap(parameters.data)};
+ const VAddr configuration_ptr{context.AddHeap(configuration)};
+
+ context.CallFunction(callbacks.GenerateCode, return_ptr, cr1_out_ptr, cr2_out_ptr,
+ configuration_ptr, parameters.command, input_ptr, input_buffer.size(),
+ cr1_in_ptr, cr2_in_ptr, data_ptr, parameters.data_size, output_ptr,
+ output_buffer.size());
+
+ const s32 return_value{context.GetHeap<s32>(return_ptr)};
+
+ if (return_value == 0) {
+ system.InvalidateCpuInstructionCacheRange(configuration.user_rx_memory.offset,
+ configuration.user_rx_memory.size);
+
+ if (ctx.CanWriteBuffer()) {
+ context.GetHeap(output_ptr, output_buffer.data(), output_buffer.size());
+ ctx.WriteBuffer(output_buffer.data(), output_buffer.size());
+ }
+ const auto cr1_out{context.GetHeap<CodeRange>(cr1_out_ptr)};
+ const auto cr2_out{context.GetHeap<CodeRange>(cr2_out_ptr)};
+
+ IPC::ResponseBuilder rb{ctx, 8};
+ rb.Push(ResultSuccess);
+ rb.Push<u64>(return_value);
+ rb.PushRaw(cr1_out);
+ rb.PushRaw(cr2_out);
+ } else {
+ LOG_WARNING(Service_JIT, "plugin GenerateCode callback failed");
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultUnknown);
+ }
+ };
+
+ void Control(Kernel::HLERequestContext& ctx) {
+ IPC::RequestParser rp{ctx};
+ const auto command{rp.PopRaw<u64>()};
+ const auto input_buffer{ctx.ReadBuffer()};
+ std::vector<u8> output_buffer(ctx.CanWriteBuffer() ? ctx.GetWriteBufferSize() : 0);
+
+ const VAddr return_ptr{context.AddHeap(0u)};
+ const VAddr configuration_ptr{context.AddHeap(configuration)};
+ const VAddr input_ptr{context.AddHeap(input_buffer.data(), input_buffer.size())};
+ const VAddr output_ptr{context.AddHeap(output_buffer.data(), output_buffer.size())};
+ const u64 wrapper_value{
+ context.CallFunction(callbacks.Control, return_ptr, configuration_ptr, command,
+ input_ptr, input_buffer.size(), output_ptr, output_buffer.size())};
+ const s32 return_value{context.GetHeap<s32>(return_ptr)};
+
+ if (wrapper_value == 0 && return_value == 0) {
+ if (ctx.CanWriteBuffer()) {
+ context.GetHeap(output_ptr, output_buffer.data(), output_buffer.size());
+ ctx.WriteBuffer(output_buffer.data(), output_buffer.size());
+ }
+ IPC::ResponseBuilder rb{ctx, 3};
+ rb.Push(ResultSuccess);
+ rb.Push(return_value);
+ } else {
+ LOG_WARNING(Service_JIT, "plugin Control callback failed");
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultUnknown);
+ }
+ }
+
+ void LoadPlugin(Kernel::HLERequestContext& ctx) {
+ IPC::RequestParser rp{ctx};
+ const auto tmem_size{rp.PopRaw<u64>()};
+ if (tmem_size == 0) {
+ LOG_ERROR(Service_JIT, "attempted to load plugin with empty transfer memory");
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultUnknown);
+ return;
+ }
+
+ const auto tmem_handle{ctx.GetCopyHandle(0)};
+ auto tmem{system.CurrentProcess()->GetHandleTable().GetObject<Kernel::KTransferMemory>(
+ tmem_handle)};
+ if (tmem.IsNull()) {
+ LOG_ERROR(Service_JIT, "attempted to load plugin with invalid transfer memory handle");
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultUnknown);
+ return;
+ }
+
+ configuration.work_memory.offset = tmem->GetSourceAddress();
+ configuration.work_memory.size = tmem_size;
+
+ const auto nro_plugin{ctx.ReadBuffer(1)};
+ auto symbols{Core::Symbols::GetSymbols(nro_plugin, true)};
+ const auto GetSymbol{[&](std::string name) { return symbols[name].first; }};
+
+ callbacks =
+ GuestCallbacks{.rtld_fini = GetSymbol("_fini"),
+ .rtld_init = GetSymbol("_init"),
+ .Control = GetSymbol("nnjitpluginControl"),
+ .ResolveBasicSymbols = GetSymbol("nnjitpluginResolveBasicSymbols"),
+ .SetupDiagnostics = GetSymbol("nnjitpluginSetupDiagnostics"),
+ .Configure = GetSymbol("nnjitpluginConfigure"),
+ .GenerateCode = GetSymbol("nnjitpluginGenerateCode"),
+ .GetVersion = GetSymbol("nnjitpluginGetVersion"),
+ .Keeper = GetSymbol("nnjitpluginKeeper"),
+ .OnPrepared = GetSymbol("nnjitpluginOnPrepared")};
+
+ if (callbacks.GetVersion == 0 || callbacks.Configure == 0 || callbacks.GenerateCode == 0 ||
+ callbacks.OnPrepared == 0) {
+ LOG_ERROR(Service_JIT, "plugin does not implement all necessary functionality");
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultUnknown);
+ return;
+ }
+
+ if (!context.LoadNRO(nro_plugin)) {
+ LOG_ERROR(Service_JIT, "failed to load plugin");
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultUnknown);
+ return;
+ }
+
+ context.MapProcessMemory(configuration.sys_ro_memory.offset,
+ configuration.sys_ro_memory.size);
+ context.MapProcessMemory(configuration.sys_rx_memory.offset,
+ configuration.sys_rx_memory.size);
+ context.MapProcessMemory(configuration.work_memory.offset, configuration.work_memory.size);
+
+ if (callbacks.rtld_init != 0) {
+ context.CallFunction(callbacks.rtld_init);
+ }
+
+ const auto version{context.CallFunction(callbacks.GetVersion)};
+ if (version != 1) {
+ LOG_ERROR(Service_JIT, "unknown plugin version {}", version);
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultUnknown);
+ return;
+ }
+
+ const auto resolve{context.GetHelper("_resolve")};
+ if (callbacks.ResolveBasicSymbols != 0) {
+ context.CallFunction(callbacks.ResolveBasicSymbols, resolve);
+ }
+ const auto resolve_ptr{context.AddHeap(resolve)};
+ if (callbacks.SetupDiagnostics != 0) {
+ context.CallFunction(callbacks.SetupDiagnostics, 0u, resolve_ptr);
+ }
+
+ context.CallFunction(callbacks.Configure, 0u);
+ const auto configuration_ptr{context.AddHeap(configuration)};
+ context.CallFunction(callbacks.OnPrepared, configuration_ptr);
+
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultSuccess);
+ }
+
+ void GetCodeAddress(Kernel::HLERequestContext& ctx) {
+ IPC::ResponseBuilder rb{ctx, 6};
+ rb.Push(ResultSuccess);
+ rb.Push(configuration.user_rx_memory.offset);
+ rb.Push(configuration.user_ro_memory.offset);
+ }
+
+private:
+ using Struct32 = std::array<u8, 32>;
+
+ struct GuestCallbacks {
+ VAddr rtld_fini;
+ VAddr rtld_init;
+ VAddr Control;
+ VAddr ResolveBasicSymbols;
+ VAddr SetupDiagnostics;
+ VAddr Configure;
+ VAddr GenerateCode;
+ VAddr GetVersion;
+ VAddr Keeper;
+ VAddr OnPrepared;
+ };
+
+ struct JITConfiguration {
+ CodeRange user_rx_memory;
+ CodeRange user_ro_memory;
+ CodeRange work_memory;
+ CodeRange sys_rx_memory;
+ CodeRange sys_ro_memory;
+ };
+
+ GuestCallbacks callbacks;
+ JITConfiguration configuration;
+ JITContext context;
+};
+
+class JITU final : public ServiceFramework<JITU> {
+public:
+ explicit JITU(Core::System& system_) : ServiceFramework{system_, "jit:u"} {
+ // clang-format off
+ static const FunctionInfo functions[] = {
+ {0, &JITU::CreateJitEnvironment, "CreateJitEnvironment"},
+ };
+ // clang-format on
+
+ RegisterHandlers(functions);
+ }
+
+ void CreateJitEnvironment(Kernel::HLERequestContext& ctx) {
+ LOG_DEBUG(Service_JIT, "called");
+
+ struct Parameters {
+ u64 rx_size;
+ u64 ro_size;
+ };
+
+ IPC::RequestParser rp{ctx};
+ const auto parameters{rp.PopRaw<Parameters>()};
+ const auto executable_mem_handle{ctx.GetCopyHandle(1)};
+ const auto readable_mem_handle{ctx.GetCopyHandle(2)};
+
+ if (parameters.rx_size == 0 || parameters.ro_size == 0) {
+ LOG_ERROR(Service_JIT, "attempted to init with empty code regions");
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultUnknown);
+ return;
+ }
+
+ // The copy handle at index 0 is the process handle, but handle tables are
+ // per-process, so there is no point reading it here until we are multiprocess
+ const auto& process{*system.CurrentProcess()};
+
+ auto executable_mem{
+ process.GetHandleTable().GetObject<Kernel::KCodeMemory>(executable_mem_handle)};
+ if (executable_mem.IsNull()) {
+ LOG_ERROR(Service_JIT, "executable_mem is null for handle=0x{:08X}",
+ executable_mem_handle);
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultUnknown);
+ return;
+ }
+
+ auto readable_mem{
+ process.GetHandleTable().GetObject<Kernel::KCodeMemory>(readable_mem_handle)};
+ if (readable_mem.IsNull()) {
+ LOG_ERROR(Service_JIT, "readable_mem is null for handle=0x{:08X}", readable_mem_handle);
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultUnknown);
+ return;
+ }
+
+ const CodeRange user_rx{
+ .offset = executable_mem->GetSourceAddress(),
+ .size = parameters.rx_size,
+ };
+
+ const CodeRange user_ro{
+ .offset = readable_mem->GetSourceAddress(),
+ .size = parameters.ro_size,
+ };
+
+ IPC::ResponseBuilder rb{ctx, 2, 0, 1};
+ rb.Push(ResultSuccess);
+ rb.PushIpcInterface<IJitEnvironment>(system, user_rx, user_ro);
+ }
+};
+
+void InstallInterfaces(SM::ServiceManager& sm, Core::System& system) {
+ std::make_shared<JITU>(system)->InstallAsService(sm);
+}
+
+} // namespace Service::JIT
diff --git a/src/core/hle/service/jit/jit.h b/src/core/hle/service/jit/jit.h
new file mode 100644
index 000000000..8fbf504a1
--- /dev/null
+++ b/src/core/hle/service/jit/jit.h
@@ -0,0 +1,20 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+namespace Core {
+class System;
+}
+
+namespace Service::SM {
+class ServiceManager;
+}
+
+namespace Service::JIT {
+
+/// Registers all JIT services with the specified service manager.
+void InstallInterfaces(SM::ServiceManager& sm, Core::System& system);
+
+} // namespace Service::JIT
diff --git a/src/core/hle/service/jit/jit_context.cpp b/src/core/hle/service/jit/jit_context.cpp
new file mode 100644
index 000000000..630368fb3
--- /dev/null
+++ b/src/core/hle/service/jit/jit_context.cpp
@@ -0,0 +1,424 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <array>
+#include <map>
+#include <span>
+#include <boost/icl/interval_set.hpp>
+#include <dynarmic/interface/A64/a64.h>
+#include <dynarmic/interface/A64/config.h>
+
+#include "common/alignment.h"
+#include "common/common_funcs.h"
+#include "common/div_ceil.h"
+#include "common/logging/log.h"
+#include "core/hle/service/jit/jit_context.h"
+#include "core/memory.h"
+
+namespace Service::JIT {
+
+constexpr std::array<u8, 4> STOP_ARM64 = {
+ 0x01, 0x00, 0x00, 0xd4, // svc #0
+};
+
+constexpr std::array<u8, 8> RESOLVE_ARM64 = {
+ 0x21, 0x00, 0x00, 0xd4, // svc #1
+ 0xc0, 0x03, 0x5f, 0xd6, // ret
+};
+
+constexpr std::array<u8, 4> PANIC_ARM64 = {
+ 0x41, 0x00, 0x00, 0xd4, // svc #2
+};
+
+constexpr std::array<u8, 60> MEMMOVE_ARM64 = {
+ 0x1f, 0x00, 0x01, 0xeb, // cmp x0, x1
+ 0x83, 0x01, 0x00, 0x54, // b.lo #+34
+ 0x42, 0x04, 0x00, 0xd1, // sub x2, x2, 1
+ 0x22, 0x01, 0xf8, 0xb7, // tbnz x2, #63, #+36
+ 0x23, 0x68, 0x62, 0x38, // ldrb w3, [x1, x2]
+ 0x03, 0x68, 0x22, 0x38, // strb w3, [x0, x2]
+ 0xfc, 0xff, 0xff, 0x17, // b #-16
+ 0x24, 0x68, 0x63, 0x38, // ldrb w4, [x1, x3]
+ 0x04, 0x68, 0x23, 0x38, // strb w4, [x0, x3]
+ 0x63, 0x04, 0x00, 0x91, // add x3, x3, 1
+ 0x7f, 0x00, 0x02, 0xeb, // cmp x3, x2
+ 0x8b, 0xff, 0xff, 0x54, // b.lt #-16
+ 0xc0, 0x03, 0x5f, 0xd6, // ret
+ 0x03, 0x00, 0x80, 0xd2, // mov x3, 0
+ 0xfc, 0xff, 0xff, 0x17, // b #-16
+};
+
+constexpr std::array<u8, 28> MEMSET_ARM64 = {
+ 0x03, 0x00, 0x80, 0xd2, // mov x3, 0
+ 0x7f, 0x00, 0x02, 0xeb, // cmp x3, x2
+ 0x4b, 0x00, 0x00, 0x54, // b.lt #+8
+ 0xc0, 0x03, 0x5f, 0xd6, // ret
+ 0x01, 0x68, 0x23, 0x38, // strb w1, [x0, x3]
+ 0x63, 0x04, 0x00, 0x91, // add x3, x3, 1
+ 0xfb, 0xff, 0xff, 0x17, // b #-20
+};
+
+struct HelperFunction {
+ const char* name;
+ const std::span<const u8> data;
+};
+
+constexpr std::array<HelperFunction, 6> HELPER_FUNCTIONS{{
+ {"_stop", STOP_ARM64},
+ {"_resolve", RESOLVE_ARM64},
+ {"_panic", PANIC_ARM64},
+ {"memcpy", MEMMOVE_ARM64},
+ {"memmove", MEMMOVE_ARM64},
+ {"memset", MEMSET_ARM64},
+}};
+
+struct Elf64_Dyn {
+ u64 d_tag;
+ u64 d_un;
+};
+
+struct Elf64_Rela {
+ u64 r_offset;
+ u64 r_info;
+ s64 r_addend;
+};
+
+static constexpr u32 Elf64_RelaType(const Elf64_Rela* rela) {
+ return static_cast<u32>(rela->r_info);
+}
+
+constexpr int DT_RELA = 7; /* Address of Rela relocs */
+constexpr int DT_RELASZ = 8; /* Total size of Rela relocs */
+constexpr int R_AARCH64_RELATIVE = 1027; /* Adjust by program base. */
+
+constexpr size_t STACK_ALIGN = 16;
+
+class JITContextImpl;
+
+using IntervalSet = boost::icl::interval_set<VAddr>::type;
+using IntervalType = boost::icl::interval_set<VAddr>::interval_type;
+
+class DynarmicCallbacks64 : public Dynarmic::A64::UserCallbacks {
+public:
+ explicit DynarmicCallbacks64(Core::Memory::Memory& memory_, std::vector<u8>& local_memory_,
+ IntervalSet& mapped_ranges_, JITContextImpl& parent_)
+ : memory{memory_}, local_memory{local_memory_},
+ mapped_ranges{mapped_ranges_}, parent{parent_} {}
+
+ u8 MemoryRead8(u64 vaddr) override {
+ return ReadMemory<u8>(vaddr);
+ }
+ u16 MemoryRead16(u64 vaddr) override {
+ return ReadMemory<u16>(vaddr);
+ }
+ u32 MemoryRead32(u64 vaddr) override {
+ return ReadMemory<u32>(vaddr);
+ }
+ u64 MemoryRead64(u64 vaddr) override {
+ return ReadMemory<u64>(vaddr);
+ }
+ u128 MemoryRead128(u64 vaddr) override {
+ return ReadMemory<u128>(vaddr);
+ }
+ std::string MemoryReadCString(u64 vaddr) {
+ std::string result;
+ u8 next;
+
+ while ((next = MemoryRead8(vaddr++)) != 0) {
+ result += next;
+ }
+
+ return result;
+ }
+
+ void MemoryWrite8(u64 vaddr, u8 value) override {
+ WriteMemory<u8>(vaddr, value);
+ }
+ void MemoryWrite16(u64 vaddr, u16 value) override {
+ WriteMemory<u16>(vaddr, value);
+ }
+ void MemoryWrite32(u64 vaddr, u32 value) override {
+ WriteMemory<u32>(vaddr, value);
+ }
+ void MemoryWrite64(u64 vaddr, u64 value) override {
+ WriteMemory<u64>(vaddr, value);
+ }
+ void MemoryWrite128(u64 vaddr, u128 value) override {
+ WriteMemory<u128>(vaddr, value);
+ }
+
+ bool MemoryWriteExclusive8(u64 vaddr, u8 value, u8) override {
+ return WriteMemory<u8>(vaddr, value);
+ }
+ bool MemoryWriteExclusive16(u64 vaddr, u16 value, u16) override {
+ return WriteMemory<u16>(vaddr, value);
+ }
+ bool MemoryWriteExclusive32(u64 vaddr, u32 value, u32) override {
+ return WriteMemory<u32>(vaddr, value);
+ }
+ bool MemoryWriteExclusive64(u64 vaddr, u64 value, u64) override {
+ return WriteMemory<u64>(vaddr, value);
+ }
+ bool MemoryWriteExclusive128(u64 vaddr, u128 value, u128) override {
+ return WriteMemory<u128>(vaddr, value);
+ }
+
+ void CallSVC(u32 swi) override;
+ void ExceptionRaised(u64 pc, Dynarmic::A64::Exception exception) override;
+ void InterpreterFallback(u64 pc, size_t num_instructions) override;
+
+ void AddTicks(u64 ticks) override {}
+ u64 GetTicksRemaining() override {
+ return std::numeric_limits<u32>::max();
+ }
+ u64 GetCNTPCT() override {
+ return 0;
+ }
+
+ template <class T>
+ T ReadMemory(u64 vaddr) {
+ T ret{};
+ if (boost::icl::contains(mapped_ranges, vaddr)) {
+ memory.ReadBlock(vaddr, &ret, sizeof(T));
+ } else if (vaddr + sizeof(T) > local_memory.size()) {
+ LOG_CRITICAL(Service_JIT, "plugin: unmapped read @ 0x{:016x}", vaddr);
+ } else {
+ std::memcpy(&ret, local_memory.data() + vaddr, sizeof(T));
+ }
+ return ret;
+ }
+
+ template <class T>
+ bool WriteMemory(u64 vaddr, const T value) {
+ if (boost::icl::contains(mapped_ranges, vaddr)) {
+ memory.WriteBlock(vaddr, &value, sizeof(T));
+ } else if (vaddr + sizeof(T) > local_memory.size()) {
+ LOG_CRITICAL(Service_JIT, "plugin: unmapped write @ 0x{:016x}", vaddr);
+ } else {
+ std::memcpy(local_memory.data() + vaddr, &value, sizeof(T));
+ }
+ return true;
+ }
+
+private:
+ Core::Memory::Memory& memory;
+ std::vector<u8>& local_memory;
+ IntervalSet& mapped_ranges;
+ JITContextImpl& parent;
+};
+
+class JITContextImpl {
+public:
+ explicit JITContextImpl(Core::Memory::Memory& memory_) : memory{memory_} {
+ callbacks =
+ std::make_unique<DynarmicCallbacks64>(memory, local_memory, mapped_ranges, *this);
+ user_config.callbacks = callbacks.get();
+ jit = std::make_unique<Dynarmic::A64::Jit>(user_config);
+ }
+
+ bool LoadNRO(std::span<const u8> data) {
+ local_memory.clear();
+ local_memory.insert(local_memory.end(), data.begin(), data.end());
+
+ if (FixupRelocations()) {
+ InsertHelperFunctions();
+ InsertStack();
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ bool FixupRelocations() {
+ const VAddr mod_offset{callbacks->MemoryRead32(4)};
+ if (callbacks->MemoryRead32(mod_offset) != Common::MakeMagic('M', 'O', 'D', '0')) {
+ return false;
+ }
+
+ VAddr dynamic_offset{mod_offset + callbacks->MemoryRead32(mod_offset + 4)};
+ VAddr rela_dyn = 0;
+ size_t num_rela = 0;
+ while (true) {
+ const auto dyn{callbacks->ReadMemory<Elf64_Dyn>(dynamic_offset)};
+ dynamic_offset += sizeof(Elf64_Dyn);
+
+ if (!dyn.d_tag) {
+ break;
+ }
+ if (dyn.d_tag == DT_RELA) {
+ rela_dyn = dyn.d_un;
+ }
+ if (dyn.d_tag == DT_RELASZ) {
+ num_rela = dyn.d_un / sizeof(Elf64_Rela);
+ }
+ }
+
+ for (size_t i = 0; i < num_rela; i++) {
+ const auto rela{callbacks->ReadMemory<Elf64_Rela>(rela_dyn + i * sizeof(Elf64_Rela))};
+ if (Elf64_RelaType(&rela) != R_AARCH64_RELATIVE) {
+ continue;
+ }
+ const VAddr contents{callbacks->MemoryRead64(rela.r_offset)};
+ callbacks->MemoryWrite64(rela.r_offset, contents + rela.r_addend);
+ }
+
+ return true;
+ }
+
+ void InsertHelperFunctions() {
+ for (const auto& [name, contents] : HELPER_FUNCTIONS) {
+ helpers[name] = local_memory.size();
+ local_memory.insert(local_memory.end(), contents.begin(), contents.end());
+ }
+ }
+
+ void InsertStack() {
+ const u64 pad_amount{Common::AlignUp(local_memory.size(), STACK_ALIGN) -
+ local_memory.size()};
+ local_memory.insert(local_memory.end(), 0x10000 + pad_amount, 0);
+ top_of_stack = local_memory.size();
+ heap_pointer = top_of_stack;
+ }
+
+ void MapProcessMemory(VAddr dest_address, std::size_t size) {
+ mapped_ranges.add(IntervalType{dest_address, dest_address + size});
+ }
+
+ void PushArgument(const void* data, size_t size) {
+ const size_t num_words = Common::DivCeil(size, sizeof(u64));
+ const size_t current_pos = argument_stack.size();
+ argument_stack.insert(argument_stack.end(), num_words, 0);
+ std::memcpy(argument_stack.data() + current_pos, data, size);
+ }
+
+ void SetupArguments() {
+ for (size_t i = 0; i < 8 && i < argument_stack.size(); i++) {
+ jit->SetRegister(i, argument_stack[i]);
+ }
+ if (argument_stack.size() > 8) {
+ const VAddr new_sp = Common::AlignDown(
+ top_of_stack - (argument_stack.size() - 8) * sizeof(u64), STACK_ALIGN);
+ for (size_t i = 8; i < argument_stack.size(); i++) {
+ callbacks->MemoryWrite64(new_sp + (i - 8) * sizeof(u64), argument_stack[i]);
+ }
+ jit->SetSP(new_sp);
+ }
+ argument_stack.clear();
+ heap_pointer = top_of_stack;
+ }
+
+ u64 CallFunction(VAddr func) {
+ jit->SetRegister(30, helpers["_stop"]);
+ jit->SetSP(top_of_stack);
+ SetupArguments();
+
+ jit->SetPC(func);
+ jit->Run();
+ return jit->GetRegister(0);
+ }
+
+ VAddr GetHelper(const std::string& name) {
+ return helpers[name];
+ }
+
+ VAddr AddHeap(const void* data, size_t size) {
+ const size_t num_bytes{Common::AlignUp(size, STACK_ALIGN)};
+ if (heap_pointer + num_bytes > local_memory.size()) {
+ local_memory.insert(local_memory.end(),
+ (heap_pointer + num_bytes) - local_memory.size(), 0);
+ }
+ const VAddr location{heap_pointer};
+ std::memcpy(local_memory.data() + location, data, size);
+ heap_pointer += num_bytes;
+ return location;
+ }
+
+ void GetHeap(VAddr location, void* data, size_t size) {
+ std::memcpy(data, local_memory.data() + location, size);
+ }
+
+ std::unique_ptr<DynarmicCallbacks64> callbacks;
+ std::vector<u8> local_memory;
+ std::vector<u64> argument_stack;
+ IntervalSet mapped_ranges;
+ Dynarmic::A64::UserConfig user_config;
+ std::unique_ptr<Dynarmic::A64::Jit> jit;
+ std::map<std::string, VAddr, std::less<>> helpers;
+ Core::Memory::Memory& memory;
+ VAddr top_of_stack;
+ VAddr heap_pointer;
+};
+
+void DynarmicCallbacks64::CallSVC(u32 swi) {
+ switch (swi) {
+ case 0:
+ parent.jit->HaltExecution();
+ break;
+
+ case 1: {
+ // X0 contains a char* for a symbol to resolve
+ std::string name{MemoryReadCString(parent.jit->GetRegister(0))};
+ const auto helper{parent.helpers[name]};
+
+ if (helper != 0) {
+ parent.jit->SetRegister(0, helper);
+ } else {
+ LOG_WARNING(Service_JIT, "plugin requested unknown function {}", name);
+ parent.jit->SetRegister(0, parent.helpers["_panic"]);
+ }
+ break;
+ }
+
+ case 2:
+ default:
+ LOG_CRITICAL(Service_JIT, "plugin panicked!");
+ parent.jit->HaltExecution();
+ break;
+ }
+}
+
+void DynarmicCallbacks64::ExceptionRaised(u64 pc, Dynarmic::A64::Exception exception) {
+ LOG_CRITICAL(Service_JIT, "Illegal operation PC @ {:08x}", pc);
+ parent.jit->HaltExecution();
+}
+
+void DynarmicCallbacks64::InterpreterFallback(u64 pc, size_t num_instructions) {
+ LOG_CRITICAL(Service_JIT, "Unimplemented instruction PC @ {:08x}", pc);
+ parent.jit->HaltExecution();
+}
+
+JITContext::JITContext(Core::Memory::Memory& memory)
+ : impl{std::make_unique<JITContextImpl>(memory)} {}
+
+JITContext::~JITContext() {}
+
+bool JITContext::LoadNRO(std::span<const u8> data) {
+ return impl->LoadNRO(data);
+}
+
+void JITContext::MapProcessMemory(VAddr dest_address, std::size_t size) {
+ impl->MapProcessMemory(dest_address, size);
+}
+
+u64 JITContext::CallFunction(VAddr func) {
+ return impl->CallFunction(func);
+}
+
+void JITContext::PushArgument(const void* data, size_t size) {
+ impl->PushArgument(data, size);
+}
+
+VAddr JITContext::GetHelper(const std::string& name) {
+ return impl->GetHelper(name);
+}
+
+VAddr JITContext::AddHeap(const void* data, size_t size) {
+ return impl->AddHeap(data, size);
+}
+
+void JITContext::GetHeap(VAddr location, void* data, size_t size) {
+ impl->GetHeap(location, data, size);
+}
+
+} // namespace Service::JIT
diff --git a/src/core/hle/service/jit/jit_context.h b/src/core/hle/service/jit/jit_context.h
new file mode 100644
index 000000000..d8bf76cff
--- /dev/null
+++ b/src/core/hle/service/jit/jit_context.h
@@ -0,0 +1,65 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <memory>
+#include <span>
+#include <string>
+
+#include "common/common_types.h"
+
+namespace Core::Memory {
+class Memory;
+}
+
+namespace Service::JIT {
+
+class JITContextImpl;
+
+class JITContext {
+public:
+ explicit JITContext(Core::Memory::Memory& memory);
+ ~JITContext();
+
+ [[nodiscard]] bool LoadNRO(std::span<const u8> data);
+ void MapProcessMemory(VAddr dest_address, std::size_t size);
+
+ template <typename T, typename... Ts>
+ u64 CallFunction(VAddr func, T argument, Ts... rest) {
+ static_assert(std::is_trivially_copyable_v<T>);
+ PushArgument(&argument, sizeof(argument));
+
+ if constexpr (sizeof...(rest) > 0) {
+ return CallFunction(func, rest...);
+ } else {
+ return CallFunction(func);
+ }
+ }
+
+ u64 CallFunction(VAddr func);
+ VAddr GetHelper(const std::string& name);
+
+ template <typename T>
+ VAddr AddHeap(T argument) {
+ return AddHeap(&argument, sizeof(argument));
+ }
+ VAddr AddHeap(const void* data, size_t size);
+
+ template <typename T>
+ T GetHeap(VAddr location) {
+ static_assert(std::is_trivially_copyable_v<T>);
+ T result;
+ GetHeap(location, &result, sizeof(result));
+ return result;
+ }
+ void GetHeap(VAddr location, void* data, size_t size);
+
+private:
+ std::unique_ptr<JITContextImpl> impl;
+
+ void PushArgument(const void* data, size_t size);
+};
+
+} // namespace Service::JIT
diff --git a/src/core/hle/service/kernel_helpers.cpp b/src/core/hle/service/kernel_helpers.cpp
index b8c2c6e51..ff0bbb788 100644
--- a/src/core/hle/service/kernel_helpers.cpp
+++ b/src/core/hle/service/kernel_helpers.cpp
@@ -17,21 +17,12 @@ namespace Service::KernelHelpers {
ServiceContext::ServiceContext(Core::System& system_, std::string name_)
: kernel(system_.Kernel()) {
-
- // Create a resource limit for the process.
- const auto physical_memory_size =
- kernel.MemoryManager().GetSize(Kernel::KMemoryManager::Pool::System);
- auto* resource_limit = Kernel::CreateResourceLimitForProcess(system_, physical_memory_size);
-
// Create the process.
process = Kernel::KProcess::Create(kernel);
ASSERT(Kernel::KProcess::Initialize(process, system_, std::move(name_),
Kernel::KProcess::ProcessType::KernelInternal,
- resource_limit)
+ kernel.GetSystemResourceLimit())
.IsSuccess());
-
- // Close reference to our resource limit, as the process opens one.
- resource_limit->Close();
}
ServiceContext::~ServiceContext() {
diff --git a/src/core/hle/service/ldr/ldr.cpp b/src/core/hle/service/ldr/ldr.cpp
index 099276420..cf727c167 100644
--- a/src/core/hle/service/ldr/ldr.cpp
+++ b/src/core/hle/service/ldr/ldr.cpp
@@ -12,7 +12,6 @@
#include "core/core.h"
#include "core/hle/ipc_helpers.h"
#include "core/hle/kernel/k_page_table.h"
-#include "core/hle/kernel/k_system_control.h"
#include "core/hle/kernel/svc_results.h"
#include "core/hle/kernel/svc_types.h"
#include "core/hle/service/ldr/ldr.h"
@@ -390,8 +389,12 @@ public:
if (bss_size) {
auto block_guard = detail::ScopeExit([&] {
- page_table.UnmapCodeMemory(addr + nro_size, bss_addr, bss_size);
- page_table.UnmapCodeMemory(addr, nro_addr, nro_size);
+ page_table.UnmapCodeMemory(
+ addr + nro_size, bss_addr, bss_size,
+ Kernel::KPageTable::ICacheInvalidationStrategy::InvalidateRange);
+ page_table.UnmapCodeMemory(
+ addr, nro_addr, nro_size,
+ Kernel::KPageTable::ICacheInvalidationStrategy::InvalidateRange);
});
const ResultCode result{
@@ -571,17 +574,21 @@ public:
auto& page_table{system.CurrentProcess()->PageTable()};
if (info.bss_size != 0) {
- CASCADE_CODE(page_table.UnmapCodeMemory(info.nro_address + info.text_size +
- info.ro_size + info.data_size,
- info.bss_address, info.bss_size));
+ CASCADE_CODE(page_table.UnmapCodeMemory(
+ info.nro_address + info.text_size + info.ro_size + info.data_size, info.bss_address,
+ info.bss_size, Kernel::KPageTable::ICacheInvalidationStrategy::InvalidateRange));
}
- CASCADE_CODE(page_table.UnmapCodeMemory(info.nro_address + info.text_size + info.ro_size,
- info.src_addr + info.text_size + info.ro_size,
- info.data_size));
- CASCADE_CODE(page_table.UnmapCodeMemory(info.nro_address + info.text_size,
- info.src_addr + info.text_size, info.ro_size));
- CASCADE_CODE(page_table.UnmapCodeMemory(info.nro_address, info.src_addr, info.text_size));
+ CASCADE_CODE(page_table.UnmapCodeMemory(
+ info.nro_address + info.text_size + info.ro_size,
+ info.src_addr + info.text_size + info.ro_size, info.data_size,
+ Kernel::KPageTable::ICacheInvalidationStrategy::InvalidateRange));
+ CASCADE_CODE(page_table.UnmapCodeMemory(
+ info.nro_address + info.text_size, info.src_addr + info.text_size, info.ro_size,
+ Kernel::KPageTable::ICacheInvalidationStrategy::InvalidateRange));
+ CASCADE_CODE(page_table.UnmapCodeMemory(
+ info.nro_address, info.src_addr, info.text_size,
+ Kernel::KPageTable::ICacheInvalidationStrategy::InvalidateRange));
return ResultSuccess;
}
diff --git a/src/core/hle/service/mii/mii_manager.cpp b/src/core/hle/service/mii/mii_manager.cpp
index 0a57c3cde..188231615 100644
--- a/src/core/hle/service/mii/mii_manager.cpp
+++ b/src/core/hle/service/mii/mii_manager.cpp
@@ -1,4 +1,4 @@
-// Copyright 2020 yuzu emulator team
+// Copyright 2020 yuzu Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
@@ -12,7 +12,6 @@
#include "core/hle/service/acc/profile_manager.h"
#include "core/hle/service/mii/mii_manager.h"
#include "core/hle/service/mii/raw_data.h"
-#include "core/hle/service/mii/types.h"
namespace Service::Mii {
diff --git a/src/core/hle/service/mii/mii_manager.h b/src/core/hle/service/mii/mii_manager.h
index 6999d15b1..5d134c425 100644
--- a/src/core/hle/service/mii/mii_manager.h
+++ b/src/core/hle/service/mii/mii_manager.h
@@ -1,315 +1,16 @@
-// Copyright 2020 yuzu emulator team
+// Copyright 2020 yuzu Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
-#include <array>
#include <vector>
-#include "common/bit_field.h"
-#include "common/common_funcs.h"
-#include "common/uuid.h"
+
#include "core/hle/result.h"
#include "core/hle/service/mii/types.h"
namespace Service::Mii {
-enum class Source : u32 {
- Database = 0,
- Default = 1,
- Account = 2,
- Friend = 3,
-};
-
-enum class SourceFlag : u32 {
- None = 0,
- Database = 1 << 0,
- Default = 1 << 1,
-};
-DECLARE_ENUM_FLAG_OPERATORS(SourceFlag);
-
-struct MiiInfo {
- Common::UUID uuid;
- std::array<char16_t, 11> name;
- u8 font_region;
- u8 favorite_color;
- u8 gender;
- u8 height;
- u8 build;
- u8 type;
- u8 region_move;
- u8 faceline_type;
- u8 faceline_color;
- u8 faceline_wrinkle;
- u8 faceline_make;
- u8 hair_type;
- u8 hair_color;
- u8 hair_flip;
- u8 eye_type;
- u8 eye_color;
- u8 eye_scale;
- u8 eye_aspect;
- u8 eye_rotate;
- u8 eye_x;
- u8 eye_y;
- u8 eyebrow_type;
- u8 eyebrow_color;
- u8 eyebrow_scale;
- u8 eyebrow_aspect;
- u8 eyebrow_rotate;
- u8 eyebrow_x;
- u8 eyebrow_y;
- u8 nose_type;
- u8 nose_scale;
- u8 nose_y;
- u8 mouth_type;
- u8 mouth_color;
- u8 mouth_scale;
- u8 mouth_aspect;
- u8 mouth_y;
- u8 beard_color;
- u8 beard_type;
- u8 mustache_type;
- u8 mustache_scale;
- u8 mustache_y;
- u8 glasses_type;
- u8 glasses_color;
- u8 glasses_scale;
- u8 glasses_y;
- u8 mole_type;
- u8 mole_scale;
- u8 mole_x;
- u8 mole_y;
- u8 padding;
-
- std::u16string Name() const;
-};
-static_assert(sizeof(MiiInfo) == 0x58, "MiiInfo has incorrect size.");
-static_assert(std::has_unique_object_representations_v<MiiInfo>,
- "All bits of MiiInfo must contribute to its value.");
-
-#pragma pack(push, 4)
-
-struct MiiInfoElement {
- MiiInfoElement(const MiiInfo& info_, Source source_) : info{info_}, source{source_} {}
-
- MiiInfo info{};
- Source source{};
-};
-static_assert(sizeof(MiiInfoElement) == 0x5c, "MiiInfoElement has incorrect size.");
-
-struct MiiStoreBitFields {
- union {
- u32 word_0{};
-
- BitField<0, 8, u32> hair_type;
- BitField<8, 7, u32> height;
- BitField<15, 1, u32> mole_type;
- BitField<16, 7, u32> build;
- BitField<23, 1, HairFlip> hair_flip;
- BitField<24, 7, u32> hair_color;
- BitField<31, 1, u32> type;
- };
-
- union {
- u32 word_1{};
-
- BitField<0, 7, u32> eye_color;
- BitField<7, 1, Gender> gender;
- BitField<8, 7, u32> eyebrow_color;
- BitField<16, 7, u32> mouth_color;
- BitField<24, 7, u32> beard_color;
- };
-
- union {
- u32 word_2{};
-
- BitField<0, 7, u32> glasses_color;
- BitField<8, 6, u32> eye_type;
- BitField<14, 2, u32> region_move;
- BitField<16, 6, u32> mouth_type;
- BitField<22, 2, FontRegion> font_region;
- BitField<24, 5, u32> eye_y;
- BitField<29, 3, u32> glasses_scale;
- };
-
- union {
- u32 word_3{};
-
- BitField<0, 5, u32> eyebrow_type;
- BitField<5, 3, MustacheType> mustache_type;
- BitField<8, 5, u32> nose_type;
- BitField<13, 3, BeardType> beard_type;
- BitField<16, 5, u32> nose_y;
- BitField<21, 3, u32> mouth_aspect;
- BitField<24, 5, u32> mouth_y;
- BitField<29, 3, u32> eyebrow_aspect;
- };
-
- union {
- u32 word_4{};
-
- BitField<0, 5, u32> mustache_y;
- BitField<5, 3, u32> eye_rotate;
- BitField<8, 5, u32> glasses_y;
- BitField<13, 3, u32> eye_aspect;
- BitField<16, 5, u32> mole_x;
- BitField<21, 3, u32> eye_scale;
- BitField<24, 5, u32> mole_y;
- };
-
- union {
- u32 word_5{};
-
- BitField<0, 5, u32> glasses_type;
- BitField<8, 4, u32> favorite_color;
- BitField<12, 4, u32> faceline_type;
- BitField<16, 4, u32> faceline_color;
- BitField<20, 4, u32> faceline_wrinkle;
- BitField<24, 4, u32> faceline_makeup;
- BitField<28, 4, u32> eye_x;
- };
-
- union {
- u32 word_6{};
-
- BitField<0, 4, u32> eyebrow_scale;
- BitField<4, 4, u32> eyebrow_rotate;
- BitField<8, 4, u32> eyebrow_x;
- BitField<12, 4, u32> eyebrow_y;
- BitField<16, 4, u32> nose_scale;
- BitField<20, 4, u32> mouth_scale;
- BitField<24, 4, u32> mustache_scale;
- BitField<28, 4, u32> mole_scale;
- };
-};
-static_assert(sizeof(MiiStoreBitFields) == 0x1c, "MiiStoreBitFields has incorrect size.");
-static_assert(std::is_trivially_copyable_v<MiiStoreBitFields>,
- "MiiStoreBitFields is not trivially copyable.");
-
-struct MiiStoreData {
- using Name = std::array<char16_t, 10>;
-
- MiiStoreData();
- MiiStoreData(const Name& name, const MiiStoreBitFields& bit_fields,
- const Common::UUID& user_id);
-
- // This corresponds to the above structure MiiStoreBitFields. I did it like this because the
- // BitField<> type makes this (and any thing that contains it) not trivially copyable, which is
- // not suitable for our uses.
- struct {
- std::array<u8, 0x1C> data{};
- static_assert(sizeof(MiiStoreBitFields) == sizeof(data), "data field has incorrect size.");
-
- Name name{};
- Common::UUID uuid{};
- } data;
-
- u16 data_crc{};
- u16 device_crc{};
-};
-static_assert(sizeof(MiiStoreData) == 0x44, "MiiStoreData has incorrect size.");
-
-struct MiiStoreDataElement {
- MiiStoreData data{};
- Source source{};
-};
-static_assert(sizeof(MiiStoreDataElement) == 0x48, "MiiStoreDataElement has incorrect size.");
-
-struct MiiDatabase {
- u32 magic{}; // 'NFDB'
- std::array<MiiStoreData, 0x64> miis{};
- INSERT_PADDING_BYTES(1);
- u8 count{};
- u16 crc{};
-};
-static_assert(sizeof(MiiDatabase) == 0x1A98, "MiiDatabase has incorrect size.");
-
-struct RandomMiiValues {
- std::array<u8, 0xbc> values{};
-};
-static_assert(sizeof(RandomMiiValues) == 0xbc, "RandomMiiValues has incorrect size.");
-
-struct RandomMiiData4 {
- Gender gender{};
- Age age{};
- Race race{};
- u32 values_count{};
- std::array<u32, 47> values{};
-};
-static_assert(sizeof(RandomMiiData4) == 0xcc, "RandomMiiData4 has incorrect size.");
-
-struct RandomMiiData3 {
- u32 arg_1;
- u32 arg_2;
- u32 values_count;
- std::array<u32, 47> values{};
-};
-static_assert(sizeof(RandomMiiData3) == 0xc8, "RandomMiiData3 has incorrect size.");
-
-struct RandomMiiData2 {
- u32 arg_1;
- u32 values_count;
- std::array<u32, 47> values{};
-};
-static_assert(sizeof(RandomMiiData2) == 0xc4, "RandomMiiData2 has incorrect size.");
-
-struct DefaultMii {
- u32 face_type{};
- u32 face_color{};
- u32 face_wrinkle{};
- u32 face_makeup{};
- u32 hair_type{};
- u32 hair_color{};
- u32 hair_flip{};
- u32 eye_type{};
- u32 eye_color{};
- u32 eye_scale{};
- u32 eye_aspect{};
- u32 eye_rotate{};
- u32 eye_x{};
- u32 eye_y{};
- u32 eyebrow_type{};
- u32 eyebrow_color{};
- u32 eyebrow_scale{};
- u32 eyebrow_aspect{};
- u32 eyebrow_rotate{};
- u32 eyebrow_x{};
- u32 eyebrow_y{};
- u32 nose_type{};
- u32 nose_scale{};
- u32 nose_y{};
- u32 mouth_type{};
- u32 mouth_color{};
- u32 mouth_scale{};
- u32 mouth_aspect{};
- u32 mouth_y{};
- u32 mustache_type{};
- u32 beard_type{};
- u32 beard_color{};
- u32 mustache_scale{};
- u32 mustache_y{};
- u32 glasses_type{};
- u32 glasses_color{};
- u32 glasses_scale{};
- u32 glasses_y{};
- u32 mole_type{};
- u32 mole_scale{};
- u32 mole_x{};
- u32 mole_y{};
- u32 height{};
- u32 weight{};
- Gender gender{};
- u32 favorite_color{};
- u32 region{};
- FontRegion font_region{};
- u32 type{};
- INSERT_PADDING_WORDS(5);
-};
-static_assert(sizeof(DefaultMii) == 0xd8, "MiiStoreData has incorrect size.");
-
-#pragma pack(pop)
-
// The Mii manager is responsible for loading and storing the Miis to the database in NAND along
// with providing an easy interface for HLE emulation of the mii service.
class MiiManager {
diff --git a/src/core/hle/service/mii/raw_data.h b/src/core/hle/service/mii/raw_data.h
index bd90c2162..2e39c0d4f 100644
--- a/src/core/hle/service/mii/raw_data.h
+++ b/src/core/hle/service/mii/raw_data.h
@@ -6,7 +6,7 @@
#include <array>
-#include "core/hle/service/mii/mii_manager.h"
+#include "core/hle/service/mii/types.h"
namespace Service::Mii::RawData {
diff --git a/src/core/hle/service/mii/types.h b/src/core/hle/service/mii/types.h
index d65a1055e..5580b8c6a 100644
--- a/src/core/hle/service/mii/types.h
+++ b/src/core/hle/service/mii/types.h
@@ -1,11 +1,16 @@
-// Copyright 2020 yuzu emulator team
+// Copyright 2020 yuzu Emulator Project
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
#pragma once
+#include <array>
+#include <type_traits>
+
+#include "common/bit_field.h"
#include "common/common_funcs.h"
#include "common/common_types.h"
+#include "common/uuid.h"
namespace Service::Mii {
@@ -25,7 +30,11 @@ enum class BeardType : u32 {
Beard5,
};
-enum class BeardAndMustacheFlag : u32 { Beard = 1, Mustache, All = Beard | Mustache };
+enum class BeardAndMustacheFlag : u32 {
+ Beard = 1,
+ Mustache,
+ All = Beard | Mustache,
+};
DECLARE_ENUM_FLAG_OPERATORS(BeardAndMustacheFlag);
enum class FontRegion : u32 {
@@ -64,4 +73,298 @@ enum class Race : u32 {
All,
};
+enum class Source : u32 {
+ Database = 0,
+ Default = 1,
+ Account = 2,
+ Friend = 3,
+};
+
+enum class SourceFlag : u32 {
+ None = 0,
+ Database = 1 << 0,
+ Default = 1 << 1,
+};
+DECLARE_ENUM_FLAG_OPERATORS(SourceFlag);
+
+struct MiiInfo {
+ Common::UUID uuid;
+ std::array<char16_t, 11> name;
+ u8 font_region;
+ u8 favorite_color;
+ u8 gender;
+ u8 height;
+ u8 build;
+ u8 type;
+ u8 region_move;
+ u8 faceline_type;
+ u8 faceline_color;
+ u8 faceline_wrinkle;
+ u8 faceline_make;
+ u8 hair_type;
+ u8 hair_color;
+ u8 hair_flip;
+ u8 eye_type;
+ u8 eye_color;
+ u8 eye_scale;
+ u8 eye_aspect;
+ u8 eye_rotate;
+ u8 eye_x;
+ u8 eye_y;
+ u8 eyebrow_type;
+ u8 eyebrow_color;
+ u8 eyebrow_scale;
+ u8 eyebrow_aspect;
+ u8 eyebrow_rotate;
+ u8 eyebrow_x;
+ u8 eyebrow_y;
+ u8 nose_type;
+ u8 nose_scale;
+ u8 nose_y;
+ u8 mouth_type;
+ u8 mouth_color;
+ u8 mouth_scale;
+ u8 mouth_aspect;
+ u8 mouth_y;
+ u8 beard_color;
+ u8 beard_type;
+ u8 mustache_type;
+ u8 mustache_scale;
+ u8 mustache_y;
+ u8 glasses_type;
+ u8 glasses_color;
+ u8 glasses_scale;
+ u8 glasses_y;
+ u8 mole_type;
+ u8 mole_scale;
+ u8 mole_x;
+ u8 mole_y;
+ u8 padding;
+};
+static_assert(sizeof(MiiInfo) == 0x58, "MiiInfo has incorrect size.");
+static_assert(std::has_unique_object_representations_v<MiiInfo>,
+ "All bits of MiiInfo must contribute to its value.");
+
+#pragma pack(push, 4)
+
+struct MiiInfoElement {
+ MiiInfoElement(const MiiInfo& info_, Source source_) : info{info_}, source{source_} {}
+
+ MiiInfo info{};
+ Source source{};
+};
+static_assert(sizeof(MiiInfoElement) == 0x5c, "MiiInfoElement has incorrect size.");
+
+struct MiiStoreBitFields {
+ union {
+ u32 word_0{};
+
+ BitField<0, 8, u32> hair_type;
+ BitField<8, 7, u32> height;
+ BitField<15, 1, u32> mole_type;
+ BitField<16, 7, u32> build;
+ BitField<23, 1, HairFlip> hair_flip;
+ BitField<24, 7, u32> hair_color;
+ BitField<31, 1, u32> type;
+ };
+
+ union {
+ u32 word_1{};
+
+ BitField<0, 7, u32> eye_color;
+ BitField<7, 1, Gender> gender;
+ BitField<8, 7, u32> eyebrow_color;
+ BitField<16, 7, u32> mouth_color;
+ BitField<24, 7, u32> beard_color;
+ };
+
+ union {
+ u32 word_2{};
+
+ BitField<0, 7, u32> glasses_color;
+ BitField<8, 6, u32> eye_type;
+ BitField<14, 2, u32> region_move;
+ BitField<16, 6, u32> mouth_type;
+ BitField<22, 2, FontRegion> font_region;
+ BitField<24, 5, u32> eye_y;
+ BitField<29, 3, u32> glasses_scale;
+ };
+
+ union {
+ u32 word_3{};
+
+ BitField<0, 5, u32> eyebrow_type;
+ BitField<5, 3, MustacheType> mustache_type;
+ BitField<8, 5, u32> nose_type;
+ BitField<13, 3, BeardType> beard_type;
+ BitField<16, 5, u32> nose_y;
+ BitField<21, 3, u32> mouth_aspect;
+ BitField<24, 5, u32> mouth_y;
+ BitField<29, 3, u32> eyebrow_aspect;
+ };
+
+ union {
+ u32 word_4{};
+
+ BitField<0, 5, u32> mustache_y;
+ BitField<5, 3, u32> eye_rotate;
+ BitField<8, 5, u32> glasses_y;
+ BitField<13, 3, u32> eye_aspect;
+ BitField<16, 5, u32> mole_x;
+ BitField<21, 3, u32> eye_scale;
+ BitField<24, 5, u32> mole_y;
+ };
+
+ union {
+ u32 word_5{};
+
+ BitField<0, 5, u32> glasses_type;
+ BitField<8, 4, u32> favorite_color;
+ BitField<12, 4, u32> faceline_type;
+ BitField<16, 4, u32> faceline_color;
+ BitField<20, 4, u32> faceline_wrinkle;
+ BitField<24, 4, u32> faceline_makeup;
+ BitField<28, 4, u32> eye_x;
+ };
+
+ union {
+ u32 word_6{};
+
+ BitField<0, 4, u32> eyebrow_scale;
+ BitField<4, 4, u32> eyebrow_rotate;
+ BitField<8, 4, u32> eyebrow_x;
+ BitField<12, 4, u32> eyebrow_y;
+ BitField<16, 4, u32> nose_scale;
+ BitField<20, 4, u32> mouth_scale;
+ BitField<24, 4, u32> mustache_scale;
+ BitField<28, 4, u32> mole_scale;
+ };
+};
+static_assert(sizeof(MiiStoreBitFields) == 0x1c, "MiiStoreBitFields has incorrect size.");
+static_assert(std::is_trivially_copyable_v<MiiStoreBitFields>,
+ "MiiStoreBitFields is not trivially copyable.");
+
+struct MiiStoreData {
+ using Name = std::array<char16_t, 10>;
+
+ MiiStoreData();
+ MiiStoreData(const Name& name, const MiiStoreBitFields& bit_fields,
+ const Common::UUID& user_id);
+
+ // This corresponds to the above structure MiiStoreBitFields. I did it like this because the
+ // BitField<> type makes this (and any thing that contains it) not trivially copyable, which is
+ // not suitable for our uses.
+ struct {
+ std::array<u8, 0x1C> data{};
+ static_assert(sizeof(MiiStoreBitFields) == sizeof(data), "data field has incorrect size.");
+
+ Name name{};
+ Common::UUID uuid{};
+ } data;
+
+ u16 data_crc{};
+ u16 device_crc{};
+};
+static_assert(sizeof(MiiStoreData) == 0x44, "MiiStoreData has incorrect size.");
+
+struct MiiStoreDataElement {
+ MiiStoreData data{};
+ Source source{};
+};
+static_assert(sizeof(MiiStoreDataElement) == 0x48, "MiiStoreDataElement has incorrect size.");
+
+struct MiiDatabase {
+ u32 magic{}; // 'NFDB'
+ std::array<MiiStoreData, 0x64> miis{};
+ INSERT_PADDING_BYTES(1);
+ u8 count{};
+ u16 crc{};
+};
+static_assert(sizeof(MiiDatabase) == 0x1A98, "MiiDatabase has incorrect size.");
+
+struct RandomMiiValues {
+ std::array<u8, 0xbc> values{};
+};
+static_assert(sizeof(RandomMiiValues) == 0xbc, "RandomMiiValues has incorrect size.");
+
+struct RandomMiiData4 {
+ Gender gender{};
+ Age age{};
+ Race race{};
+ u32 values_count{};
+ std::array<u32, 47> values{};
+};
+static_assert(sizeof(RandomMiiData4) == 0xcc, "RandomMiiData4 has incorrect size.");
+
+struct RandomMiiData3 {
+ u32 arg_1;
+ u32 arg_2;
+ u32 values_count;
+ std::array<u32, 47> values{};
+};
+static_assert(sizeof(RandomMiiData3) == 0xc8, "RandomMiiData3 has incorrect size.");
+
+struct RandomMiiData2 {
+ u32 arg_1;
+ u32 values_count;
+ std::array<u32, 47> values{};
+};
+static_assert(sizeof(RandomMiiData2) == 0xc4, "RandomMiiData2 has incorrect size.");
+
+struct DefaultMii {
+ u32 face_type{};
+ u32 face_color{};
+ u32 face_wrinkle{};
+ u32 face_makeup{};
+ u32 hair_type{};
+ u32 hair_color{};
+ u32 hair_flip{};
+ u32 eye_type{};
+ u32 eye_color{};
+ u32 eye_scale{};
+ u32 eye_aspect{};
+ u32 eye_rotate{};
+ u32 eye_x{};
+ u32 eye_y{};
+ u32 eyebrow_type{};
+ u32 eyebrow_color{};
+ u32 eyebrow_scale{};
+ u32 eyebrow_aspect{};
+ u32 eyebrow_rotate{};
+ u32 eyebrow_x{};
+ u32 eyebrow_y{};
+ u32 nose_type{};
+ u32 nose_scale{};
+ u32 nose_y{};
+ u32 mouth_type{};
+ u32 mouth_color{};
+ u32 mouth_scale{};
+ u32 mouth_aspect{};
+ u32 mouth_y{};
+ u32 mustache_type{};
+ u32 beard_type{};
+ u32 beard_color{};
+ u32 mustache_scale{};
+ u32 mustache_y{};
+ u32 glasses_type{};
+ u32 glasses_color{};
+ u32 glasses_scale{};
+ u32 glasses_y{};
+ u32 mole_type{};
+ u32 mole_scale{};
+ u32 mole_x{};
+ u32 mole_y{};
+ u32 height{};
+ u32 weight{};
+ Gender gender{};
+ u32 favorite_color{};
+ u32 region{};
+ FontRegion font_region{};
+ u32 type{};
+ INSERT_PADDING_WORDS(5);
+};
+static_assert(sizeof(DefaultMii) == 0xd8, "MiiStoreData has incorrect size.");
+
+#pragma pack(pop)
+
} // namespace Service::Mii
diff --git a/src/core/hle/service/nfp/nfp.cpp b/src/core/hle/service/nfp/nfp.cpp
index 513107715..dab99b675 100644
--- a/src/core/hle/service/nfp/nfp.cpp
+++ b/src/core/hle/service/nfp/nfp.cpp
@@ -12,6 +12,7 @@
#include "core/hid/hid_types.h"
#include "core/hle/ipc_helpers.h"
#include "core/hle/kernel/k_event.h"
+#include "core/hle/service/mii/mii_manager.h"
#include "core/hle/service/nfp/nfp.h"
#include "core/hle/service/nfp/nfp_user.h"
diff --git a/src/core/hle/service/nfp/nfp.h b/src/core/hle/service/nfp/nfp.h
index 022f13b29..ab652f635 100644
--- a/src/core/hle/service/nfp/nfp.h
+++ b/src/core/hle/service/nfp/nfp.h
@@ -9,7 +9,7 @@
#include "common/common_funcs.h"
#include "core/hle/service/kernel_helpers.h"
-#include "core/hle/service/mii/mii_manager.h"
+#include "core/hle/service/mii/types.h"
#include "core/hle/service/service.h"
namespace Kernel {
diff --git a/src/core/hle/service/nifm/nifm.cpp b/src/core/hle/service/nifm/nifm.cpp
index a253dd066..edb576ad3 100644
--- a/src/core/hle/service/nifm/nifm.cpp
+++ b/src/core/hle/service/nifm/nifm.cpp
@@ -5,7 +5,6 @@
#include "core/core.h"
#include "core/hle/ipc_helpers.h"
#include "core/hle/kernel/k_event.h"
-#include "core/hle/kernel/kernel.h"
#include "core/hle/service/kernel_helpers.h"
#include "core/hle/service/nifm/nifm.h"
#include "core/hle/service/service.h"
diff --git a/src/core/hle/service/ns/pdm_qry.cpp b/src/core/hle/service/ns/pdm_qry.cpp
index 36ce46353..3a83d0698 100644
--- a/src/core/hle/service/ns/pdm_qry.cpp
+++ b/src/core/hle/service/ns/pdm_qry.cpp
@@ -9,7 +9,6 @@
#include "core/hle/ipc_helpers.h"
#include "core/hle/service/ns/pdm_qry.h"
#include "core/hle/service/service.h"
-#include "core/hle/service/sm/sm.h"
namespace Service::NS {
diff --git a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
index 68f1e9060..9fad45fe1 100644
--- a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
@@ -38,18 +38,16 @@ NvResult nvdisp_disp0::Ioctl3(DeviceFD fd, Ioctl command, const std::vector<u8>&
void nvdisp_disp0::OnOpen(DeviceFD fd) {}
void nvdisp_disp0::OnClose(DeviceFD fd) {}
-void nvdisp_disp0::flip(u32 buffer_handle, u32 offset, u32 format, u32 width, u32 height,
- u32 stride, NVFlinger::BufferQueue::BufferTransformFlags transform,
+void nvdisp_disp0::flip(u32 buffer_handle, u32 offset, android::PixelFormat format, u32 width,
+ u32 height, u32 stride, android::BufferTransformFlags transform,
const Common::Rectangle<int>& crop_rect) {
const VAddr addr = nvmap_dev->GetObjectAddress(buffer_handle);
LOG_TRACE(Service,
"Drawing from address {:X} offset {:08X} Width {} Height {} Stride {} Format {}",
addr, offset, width, height, stride, format);
- const auto pixel_format = static_cast<Tegra::FramebufferConfig::PixelFormat>(format);
- const auto transform_flags = static_cast<Tegra::FramebufferConfig::TransformFlags>(transform);
- const Tegra::FramebufferConfig framebuffer{addr, offset, width, height,
- stride, pixel_format, transform_flags, crop_rect};
+ const Tegra::FramebufferConfig framebuffer{addr, offset, width, height,
+ stride, format, transform, crop_rect};
system.GetPerfStats().EndSystemFrame();
system.GPU().SwapBuffers(&framebuffer);
diff --git a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.h b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.h
index de01e1d5f..30b5da429 100644
--- a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.h
+++ b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.h
@@ -9,7 +9,8 @@
#include "common/common_types.h"
#include "common/math_util.h"
#include "core/hle/service/nvdrv/devices/nvdevice.h"
-#include "core/hle/service/nvflinger/buffer_queue.h"
+#include "core/hle/service/nvflinger/buffer_transform_flags.h"
+#include "core/hle/service/nvflinger/pixel_format.h"
namespace Service::Nvidia::Devices {
@@ -31,8 +32,8 @@ public:
void OnClose(DeviceFD fd) override;
/// Performs a screen flip, drawing the buffer pointed to by the handle.
- void flip(u32 buffer_handle, u32 offset, u32 format, u32 width, u32 height, u32 stride,
- NVFlinger::BufferQueue::BufferTransformFlags transform,
+ void flip(u32 buffer_handle, u32 offset, android::PixelFormat format, u32 width, u32 height,
+ u32 stride, android::BufferTransformFlags transform,
const Common::Rectangle<int>& crop_rect);
private:
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp
index f9b82b504..44c54c665 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp
@@ -134,7 +134,7 @@ NvResult nvhost_ctrl::IocCtrlEventWait(const std::vector<u8>& input, std::vector
}
EventState status = events_interface.status[event_id];
- const bool bad_parameter = status != EventState::Free && status != EventState::Registered;
+ const bool bad_parameter = status == EventState::Busy;
if (bad_parameter) {
std::memcpy(output.data(), &params, sizeof(params));
return NvResult::BadParameter;
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h
index 898d00a17..f434f6929 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h
@@ -5,6 +5,8 @@
#pragma once
#include <vector>
+
+#include "common/common_funcs.h"
#include "common/common_types.h"
#include "common/swap.h"
#include "core/hle/service/nvdrv/devices/nvdevice.h"
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
index 0a043e386..dde5b1507 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
@@ -187,7 +187,7 @@ NvResult nvhost_gpu::AllocateObjectContext(const std::vector<u8>& input, std::ve
return NvResult::Success;
}
-static std::vector<Tegra::CommandHeader> BuildWaitCommandList(Fence fence) {
+static std::vector<Tegra::CommandHeader> BuildWaitCommandList(NvFence fence) {
return {
Tegra::BuildCommandHeader(Tegra::BufferMethods::FenceValue, 1,
Tegra::SubmissionMode::Increasing),
@@ -198,7 +198,8 @@ static std::vector<Tegra::CommandHeader> BuildWaitCommandList(Fence fence) {
};
}
-static std::vector<Tegra::CommandHeader> BuildIncrementCommandList(Fence fence, u32 add_increment) {
+static std::vector<Tegra::CommandHeader> BuildIncrementCommandList(NvFence fence,
+ u32 add_increment) {
std::vector<Tegra::CommandHeader> result{
Tegra::BuildCommandHeader(Tegra::BufferMethods::FenceValue, 1,
Tegra::SubmissionMode::Increasing),
@@ -213,7 +214,7 @@ static std::vector<Tegra::CommandHeader> BuildIncrementCommandList(Fence fence,
return result;
}
-static std::vector<Tegra::CommandHeader> BuildIncrementWithWfiCommandList(Fence fence,
+static std::vector<Tegra::CommandHeader> BuildIncrementWithWfiCommandList(NvFence fence,
u32 add_increment) {
std::vector<Tegra::CommandHeader> result{
Tegra::BuildCommandHeader(Tegra::BufferMethods::WaitForInterrupt, 1,
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h
index f27a82bff..b2e943e45 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h
@@ -7,6 +7,7 @@
#include <memory>
#include <vector>
#include "common/bit_field.h"
+#include "common/common_funcs.h"
#include "common/common_types.h"
#include "common/swap.h"
#include "core/hle/service/nvdrv/devices/nvdevice.h"
@@ -108,7 +109,7 @@ private:
static_assert(sizeof(IoctlGetErrorNotification) == 16,
"IoctlGetErrorNotification is incorrect size");
- static_assert(sizeof(Fence) == 8, "Fence is incorrect size");
+ static_assert(sizeof(NvFence) == 8, "Fence is incorrect size");
struct IoctlAllocGpfifoEx {
u32_le num_entries{};
@@ -126,7 +127,7 @@ private:
u32_le num_entries{}; // in
u32_le flags{}; // in
u32_le unk0{}; // in (1 works)
- Fence fence_out{}; // out
+ NvFence fence_out{}; // out
u32_le unk1{}; // in
u32_le unk2{}; // in
u32_le unk3{}; // in
@@ -152,13 +153,13 @@ private:
BitField<4, 1, u32_le> suppress_wfi; // suppress wait for interrupt
BitField<8, 1, u32_le> increment; // increment the returned fence
} flags;
- Fence fence_out{}; // returned new fence object for others to wait on
+ NvFence fence_out{}; // returned new fence object for others to wait on
u32 AddIncrementValue() const {
return flags.add_increment.Value() << 1;
}
};
- static_assert(sizeof(IoctlSubmitGpfifo) == 16 + sizeof(Fence),
+ static_assert(sizeof(IoctlSubmitGpfifo) == 16 + sizeof(NvFence),
"IoctlSubmitGpfifo is incorrect size");
struct IoctlGetWaitbase {
@@ -193,7 +194,7 @@ private:
std::shared_ptr<nvmap> nvmap_dev;
SyncpointManager& syncpoint_manager;
- Fence channel_fence;
+ NvFence channel_fence;
};
} // namespace Service::Nvidia::Devices
diff --git a/src/core/hle/service/nvdrv/nvdata.h b/src/core/hle/service/nvdrv/nvdata.h
index 5ab221fc1..3069c3c80 100644
--- a/src/core/hle/service/nvdrv/nvdata.h
+++ b/src/core/hle/service/nvdrv/nvdata.h
@@ -16,17 +16,11 @@ using DeviceFD = s32;
constexpr DeviceFD INVALID_NVDRV_FD = -1;
-struct Fence {
+struct NvFence {
s32 id;
u32 value;
};
-
-static_assert(sizeof(Fence) == 8, "Fence has wrong size");
-
-struct MultiFence {
- u32 num_fences;
- std::array<Fence, 4> fences;
-};
+static_assert(sizeof(NvFence) == 8, "NvFence has wrong size");
enum class NvResult : u32 {
Success = 0x0,
diff --git a/src/core/hle/service/nvdrv/nvdrv.h b/src/core/hle/service/nvdrv/nvdrv.h
index a5af5b785..11cf6c0d1 100644
--- a/src/core/hle/service/nvdrv/nvdrv.h
+++ b/src/core/hle/service/nvdrv/nvdrv.h
@@ -12,6 +12,7 @@
#include "core/hle/service/kernel_helpers.h"
#include "core/hle/service/nvdrv/nvdata.h"
#include "core/hle/service/nvdrv/syncpoint_manager.h"
+#include "core/hle/service/nvflinger/ui/fence.h"
#include "core/hle/service/service.h"
namespace Core {
@@ -37,7 +38,7 @@ class nvdevice;
/// Represents an Nvidia event
struct NvEvent {
Kernel::KEvent* event{};
- Fence fence{};
+ NvFence fence{};
};
struct EventInterface {
diff --git a/src/core/hle/service/nvdrv/nvdrv_interface.cpp b/src/core/hle/service/nvdrv/nvdrv_interface.cpp
index c16babe14..8467b50e4 100644
--- a/src/core/hle/service/nvdrv/nvdrv_interface.cpp
+++ b/src/core/hle/service/nvdrv/nvdrv_interface.cpp
@@ -26,7 +26,7 @@ void NVDRV::Open(Kernel::HLERequestContext& ctx) {
rb.Push<DeviceFD>(0);
rb.PushEnum(NvResult::NotInitialized);
- LOG_ERROR(Service_NVDRV, "NvServices is not initalized!");
+ LOG_ERROR(Service_NVDRV, "NvServices is not initialized!");
return;
}
@@ -61,7 +61,7 @@ void NVDRV::Ioctl1(Kernel::HLERequestContext& ctx) {
if (!is_initialized) {
ServiceError(ctx, NvResult::NotInitialized);
- LOG_ERROR(Service_NVDRV, "NvServices is not initalized!");
+ LOG_ERROR(Service_NVDRV, "NvServices is not initialized!");
return;
}
@@ -87,7 +87,7 @@ void NVDRV::Ioctl2(Kernel::HLERequestContext& ctx) {
if (!is_initialized) {
ServiceError(ctx, NvResult::NotInitialized);
- LOG_ERROR(Service_NVDRV, "NvServices is not initalized!");
+ LOG_ERROR(Service_NVDRV, "NvServices is not initialized!");
return;
}
@@ -114,7 +114,7 @@ void NVDRV::Ioctl3(Kernel::HLERequestContext& ctx) {
if (!is_initialized) {
ServiceError(ctx, NvResult::NotInitialized);
- LOG_ERROR(Service_NVDRV, "NvServices is not initalized!");
+ LOG_ERROR(Service_NVDRV, "NvServices is not initialized!");
return;
}
@@ -139,7 +139,7 @@ void NVDRV::Close(Kernel::HLERequestContext& ctx) {
if (!is_initialized) {
ServiceError(ctx, NvResult::NotInitialized);
- LOG_ERROR(Service_NVDRV, "NvServices is not initalized!");
+ LOG_ERROR(Service_NVDRV, "NvServices is not initialized!");
return;
}
@@ -170,7 +170,7 @@ void NVDRV::QueryEvent(Kernel::HLERequestContext& ctx) {
if (!is_initialized) {
ServiceError(ctx, NvResult::NotInitialized);
- LOG_ERROR(Service_NVDRV, "NvServices is not initalized!");
+ LOG_ERROR(Service_NVDRV, "NvServices is not initialized!");
return;
}
@@ -230,7 +230,7 @@ void NVDRV::DumpGraphicsMemoryInfo(Kernel::HLERequestContext& ctx) {
}
NVDRV::NVDRV(Core::System& system_, std::shared_ptr<Module> nvdrv_, const char* name)
- : ServiceFramework{system_, name}, nvdrv{std::move(nvdrv_)} {
+ : ServiceFramework{system_, name, ServiceThreadType::CreateNew}, nvdrv{std::move(nvdrv_)} {
static const FunctionInfo functions[] = {
{0, &NVDRV::Open, "Open"},
{1, &NVDRV::Ioctl1, "Ioctl"},
diff --git a/src/core/hle/service/nvflinger/binder.h b/src/core/hle/service/nvflinger/binder.h
new file mode 100644
index 000000000..7d0d4d819
--- /dev/null
+++ b/src/core/hle/service/nvflinger/binder.h
@@ -0,0 +1,42 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/binder/IBinder.h
+
+#pragma once
+
+#include "common/common_types.h"
+
+namespace Kernel {
+class HLERequestContext;
+class KReadableEvent;
+} // namespace Kernel
+
+namespace Service::android {
+
+enum class TransactionId {
+ RequestBuffer = 1,
+ SetBufferCount = 2,
+ DequeueBuffer = 3,
+ DetachBuffer = 4,
+ DetachNextBuffer = 5,
+ AttachBuffer = 6,
+ QueueBuffer = 7,
+ CancelBuffer = 8,
+ Query = 9,
+ Connect = 10,
+ Disconnect = 11,
+ AllocateBuffers = 13,
+ SetPreallocatedBuffer = 14,
+ GetBufferHistory = 17,
+};
+
+class IBinder {
+public:
+ virtual void Transact(Kernel::HLERequestContext& ctx, android::TransactionId code,
+ u32 flags) = 0;
+ virtual Kernel::KReadableEvent& GetNativeHandle() = 0;
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/buffer_item.h b/src/core/hle/service/nvflinger/buffer_item.h
new file mode 100644
index 000000000..64b82b851
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_item.h
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/BufferItem.h
+
+#pragma once
+
+#include <memory>
+
+#include "common/common_types.h"
+#include "common/math_util.h"
+#include "core/hle/service/nvflinger/ui/fence.h"
+#include "core/hle/service/nvflinger/window.h"
+
+namespace Service::android {
+
+class GraphicBuffer;
+
+class BufferItem final {
+public:
+ constexpr BufferItem() = default;
+
+ std::shared_ptr<GraphicBuffer> graphic_buffer;
+ Fence fence;
+ Common::Rectangle<s32> crop;
+ NativeWindowTransform transform{};
+ u32 scaling_mode{};
+ s64 timestamp{};
+ bool is_auto_timestamp{};
+ u64 frame_number{};
+
+ // The default value for buf, used to indicate this doesn't correspond to a slot.
+ static constexpr s32 INVALID_BUFFER_SLOT = -1;
+ union {
+ s32 slot{INVALID_BUFFER_SLOT};
+ s32 buf;
+ };
+
+ bool is_droppable{};
+ bool acquire_called{};
+ bool transform_to_display_inverse{};
+ s32 swap_interval{};
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/buffer_item_consumer.cpp b/src/core/hle/service/nvflinger/buffer_item_consumer.cpp
new file mode 100644
index 000000000..d7ee5362b
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_item_consumer.cpp
@@ -0,0 +1,59 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2012 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/libs/gui/BufferItemConsumer.cpp
+
+#include "common/assert.h"
+#include "common/logging/log.h"
+#include "core/hle/service/nvflinger/buffer_item.h"
+#include "core/hle/service/nvflinger/buffer_item_consumer.h"
+#include "core/hle/service/nvflinger/buffer_queue_consumer.h"
+
+namespace Service::android {
+
+BufferItemConsumer::BufferItemConsumer(std::unique_ptr<BufferQueueConsumer> consumer_)
+ : ConsumerBase{std::move(consumer_)} {}
+
+Status BufferItemConsumer::AcquireBuffer(BufferItem* item, std::chrono::nanoseconds present_when,
+ bool wait_for_fence) {
+ if (!item) {
+ return Status::BadValue;
+ }
+
+ std::scoped_lock lock{mutex};
+
+ if (const auto status = AcquireBufferLocked(item, present_when); status != Status::NoError) {
+ if (status != Status::NoBufferAvailable) {
+ LOG_ERROR(Service_NVFlinger, "Failed to acquire buffer: {}", status);
+ }
+ return status;
+ }
+
+ if (wait_for_fence) {
+ UNIMPLEMENTED();
+ }
+
+ item->graphic_buffer = slots[item->slot].graphic_buffer;
+
+ return Status::NoError;
+}
+
+Status BufferItemConsumer::ReleaseBuffer(const BufferItem& item, Fence& release_fence) {
+ std::scoped_lock lock{mutex};
+
+ if (const auto status = AddReleaseFenceLocked(item.buf, item.graphic_buffer, release_fence);
+ status != Status::NoError) {
+ LOG_ERROR(Service_NVFlinger, "Failed to add fence: {}", status);
+ }
+
+ if (const auto status = ReleaseBufferLocked(item.buf, item.graphic_buffer);
+ status != Status::NoError) {
+ LOG_WARNING(Service_NVFlinger, "Failed to release buffer: {}", status);
+ return status;
+ }
+
+ return Status::NoError;
+}
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/buffer_item_consumer.h b/src/core/hle/service/nvflinger/buffer_item_consumer.h
new file mode 100644
index 000000000..536db81e2
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_item_consumer.h
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2012 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/BufferItemConsumer.h
+
+#pragma once
+
+#include <chrono>
+#include <memory>
+
+#include "common/common_types.h"
+#include "core/hle/service/nvflinger/consumer_base.h"
+#include "core/hle/service/nvflinger/status.h"
+
+namespace Service::android {
+
+class BufferItem;
+
+class BufferItemConsumer final : public ConsumerBase {
+public:
+ explicit BufferItemConsumer(std::unique_ptr<BufferQueueConsumer> consumer);
+ Status AcquireBuffer(BufferItem* item, std::chrono::nanoseconds present_when,
+ bool wait_for_fence = true);
+ Status ReleaseBuffer(const BufferItem& item, Fence& release_fence);
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/buffer_queue.cpp b/src/core/hle/service/nvflinger/buffer_queue.cpp
deleted file mode 100644
index 5fead6d1b..000000000
--- a/src/core/hle/service/nvflinger/buffer_queue.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-// Copyright 2018 yuzu emulator team
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#include <algorithm>
-
-#include "common/assert.h"
-#include "common/logging/log.h"
-#include "core/core.h"
-#include "core/hle/kernel/k_writable_event.h"
-#include "core/hle/kernel/kernel.h"
-#include "core/hle/service/kernel_helpers.h"
-#include "core/hle/service/nvflinger/buffer_queue.h"
-
-namespace Service::NVFlinger {
-
-BufferQueue::BufferQueue(Kernel::KernelCore& kernel, u32 id_, u64 layer_id_,
- KernelHelpers::ServiceContext& service_context_)
- : id(id_), layer_id(layer_id_), service_context{service_context_} {
- buffer_wait_event = service_context.CreateEvent("BufferQueue:WaitEvent");
-}
-
-BufferQueue::~BufferQueue() {
- service_context.CloseEvent(buffer_wait_event);
-}
-
-void BufferQueue::SetPreallocatedBuffer(u32 slot, const IGBPBuffer& igbp_buffer) {
- ASSERT(slot < buffer_slots);
- LOG_WARNING(Service, "Adding graphics buffer {}", slot);
-
- {
- std::unique_lock lock{free_buffers_mutex};
- free_buffers.push_back(slot);
- }
- free_buffers_condition.notify_one();
-
- buffers[slot] = {
- .slot = slot,
- .status = Buffer::Status::Free,
- .igbp_buffer = igbp_buffer,
- .transform = {},
- .crop_rect = {},
- .swap_interval = 0,
- .multi_fence = {},
- };
-
- buffer_wait_event->GetWritableEvent().Signal();
-}
-
-std::optional<std::pair<u32, Service::Nvidia::MultiFence*>> BufferQueue::DequeueBuffer(u32 width,
- u32 height) {
- // Wait for first request before trying to dequeue
- {
- std::unique_lock lock{free_buffers_mutex};
- free_buffers_condition.wait(lock, [this] { return !free_buffers.empty() || !is_connect; });
- }
-
- if (!is_connect) {
- // Buffer was disconnected while the thread was blocked, this is most likely due to
- // emulation being stopped
- return std::nullopt;
- }
-
- std::unique_lock lock{free_buffers_mutex};
-
- auto f_itr = free_buffers.begin();
- auto slot = buffers.size();
-
- while (f_itr != free_buffers.end()) {
- const Buffer& buffer = buffers[*f_itr];
- if (buffer.status == Buffer::Status::Free && buffer.igbp_buffer.width == width &&
- buffer.igbp_buffer.height == height) {
- slot = *f_itr;
- free_buffers.erase(f_itr);
- break;
- }
- ++f_itr;
- }
- if (slot == buffers.size()) {
- return std::nullopt;
- }
- buffers[slot].status = Buffer::Status::Dequeued;
- return {{buffers[slot].slot, &buffers[slot].multi_fence}};
-}
-
-const IGBPBuffer& BufferQueue::RequestBuffer(u32 slot) const {
- ASSERT(slot < buffers.size());
- ASSERT(buffers[slot].status == Buffer::Status::Dequeued);
- ASSERT(buffers[slot].slot == slot);
-
- return buffers[slot].igbp_buffer;
-}
-
-void BufferQueue::QueueBuffer(u32 slot, BufferTransformFlags transform,
- const Common::Rectangle<int>& crop_rect, u32 swap_interval,
- Service::Nvidia::MultiFence& multi_fence) {
- ASSERT(slot < buffers.size());
- ASSERT(buffers[slot].status == Buffer::Status::Dequeued);
- ASSERT(buffers[slot].slot == slot);
-
- buffers[slot].status = Buffer::Status::Queued;
- buffers[slot].transform = transform;
- buffers[slot].crop_rect = crop_rect;
- buffers[slot].swap_interval = swap_interval;
- buffers[slot].multi_fence = multi_fence;
- std::unique_lock lock{queue_sequence_mutex};
- queue_sequence.push_back(slot);
-}
-
-void BufferQueue::CancelBuffer(u32 slot, const Service::Nvidia::MultiFence& multi_fence) {
- ASSERT(slot < buffers.size());
- ASSERT(buffers[slot].status != Buffer::Status::Free);
- ASSERT(buffers[slot].slot == slot);
-
- buffers[slot].status = Buffer::Status::Free;
- buffers[slot].multi_fence = multi_fence;
- buffers[slot].swap_interval = 0;
-
- {
- std::unique_lock lock{free_buffers_mutex};
- free_buffers.push_back(slot);
- }
- free_buffers_condition.notify_one();
-
- buffer_wait_event->GetWritableEvent().Signal();
-}
-
-std::optional<std::reference_wrapper<const BufferQueue::Buffer>> BufferQueue::AcquireBuffer() {
- std::unique_lock lock{queue_sequence_mutex};
- std::size_t buffer_slot = buffers.size();
- // Iterate to find a queued buffer matching the requested slot.
- while (buffer_slot == buffers.size() && !queue_sequence.empty()) {
- const auto slot = static_cast<std::size_t>(queue_sequence.front());
- ASSERT(slot < buffers.size());
- if (buffers[slot].status == Buffer::Status::Queued) {
- ASSERT(buffers[slot].slot == slot);
- buffer_slot = slot;
- }
- queue_sequence.pop_front();
- }
- if (buffer_slot == buffers.size()) {
- return std::nullopt;
- }
- buffers[buffer_slot].status = Buffer::Status::Acquired;
- return {{buffers[buffer_slot]}};
-}
-
-void BufferQueue::ReleaseBuffer(u32 slot) {
- ASSERT(slot < buffers.size());
- ASSERT(buffers[slot].status == Buffer::Status::Acquired);
- ASSERT(buffers[slot].slot == slot);
-
- buffers[slot].status = Buffer::Status::Free;
- {
- std::unique_lock lock{free_buffers_mutex};
- free_buffers.push_back(slot);
- }
- free_buffers_condition.notify_one();
-
- buffer_wait_event->GetWritableEvent().Signal();
-}
-
-void BufferQueue::Connect() {
- std::unique_lock lock{queue_sequence_mutex};
- queue_sequence.clear();
- is_connect = true;
-}
-
-void BufferQueue::Disconnect() {
- buffers.fill({});
- {
- std::unique_lock lock{queue_sequence_mutex};
- queue_sequence.clear();
- }
- buffer_wait_event->GetWritableEvent().Signal();
- is_connect = false;
- free_buffers_condition.notify_one();
-}
-
-u32 BufferQueue::Query(QueryType type) {
- LOG_WARNING(Service, "(STUBBED) called type={}", type);
-
- switch (type) {
- case QueryType::NativeWindowFormat:
- return static_cast<u32>(PixelFormat::RGBA8888);
- case QueryType::NativeWindowWidth:
- case QueryType::NativeWindowHeight:
- break;
- case QueryType::NativeWindowMinUndequeuedBuffers:
- return 0;
- case QueryType::NativeWindowConsumerUsageBits:
- return 0;
- }
- UNIMPLEMENTED_MSG("Unimplemented query type={}", type);
- return 0;
-}
-
-Kernel::KWritableEvent& BufferQueue::GetWritableBufferWaitEvent() {
- return buffer_wait_event->GetWritableEvent();
-}
-
-Kernel::KReadableEvent& BufferQueue::GetBufferWaitEvent() {
- return buffer_wait_event->GetReadableEvent();
-}
-
-} // namespace Service::NVFlinger
diff --git a/src/core/hle/service/nvflinger/buffer_queue.h b/src/core/hle/service/nvflinger/buffer_queue.h
deleted file mode 100644
index f2a579133..000000000
--- a/src/core/hle/service/nvflinger/buffer_queue.h
+++ /dev/null
@@ -1,154 +0,0 @@
-// Copyright 2018 yuzu emulator team
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
-
-#pragma once
-
-#include <condition_variable>
-#include <list>
-#include <mutex>
-#include <optional>
-
-#include "common/common_funcs.h"
-#include "common/math_util.h"
-#include "common/swap.h"
-#include "core/hle/kernel/k_event.h"
-#include "core/hle/kernel/k_readable_event.h"
-#include "core/hle/service/nvdrv/nvdata.h"
-
-namespace Kernel {
-class KernelCore;
-class KEvent;
-class KReadableEvent;
-class KWritableEvent;
-} // namespace Kernel
-
-namespace Service::KernelHelpers {
-class ServiceContext;
-} // namespace Service::KernelHelpers
-
-namespace Service::NVFlinger {
-
-constexpr u32 buffer_slots = 0x40;
-struct IGBPBuffer {
- u32_le magic;
- u32_le width;
- u32_le height;
- u32_le stride;
- u32_le format;
- u32_le usage;
- INSERT_PADDING_WORDS(1);
- u32_le index;
- INSERT_PADDING_WORDS(3);
- u32_le gpu_buffer_id;
- INSERT_PADDING_WORDS(6);
- u32_le external_format;
- INSERT_PADDING_WORDS(10);
- u32_le nvmap_handle;
- u32_le offset;
- INSERT_PADDING_WORDS(60);
-};
-
-static_assert(sizeof(IGBPBuffer) == 0x16C, "IGBPBuffer has wrong size");
-
-class BufferQueue final {
-public:
- enum class QueryType {
- NativeWindowWidth = 0,
- NativeWindowHeight = 1,
- NativeWindowFormat = 2,
- /// The minimum number of buffers that must remain un-dequeued after a buffer has been
- /// queued
- NativeWindowMinUndequeuedBuffers = 3,
- /// The consumer gralloc usage bits currently set by the consumer
- NativeWindowConsumerUsageBits = 10,
- };
-
- explicit BufferQueue(Kernel::KernelCore& kernel, u32 id_, u64 layer_id_,
- KernelHelpers::ServiceContext& service_context_);
- ~BufferQueue();
-
- enum class BufferTransformFlags : u32 {
- /// No transform flags are set
- Unset = 0x00,
- /// Flip source image horizontally (around the vertical axis)
- FlipH = 0x01,
- /// Flip source image vertically (around the horizontal axis)
- FlipV = 0x02,
- /// Rotate source image 90 degrees clockwise
- Rotate90 = 0x04,
- /// Rotate source image 180 degrees
- Rotate180 = 0x03,
- /// Rotate source image 270 degrees clockwise
- Rotate270 = 0x07,
- };
-
- enum class PixelFormat : u32 {
- RGBA8888 = 1,
- RGBX8888 = 2,
- RGB888 = 3,
- RGB565 = 4,
- BGRA8888 = 5,
- RGBA5551 = 6,
- RRGBA4444 = 7,
- };
-
- struct Buffer {
- enum class Status { Free = 0, Queued = 1, Dequeued = 2, Acquired = 3 };
-
- u32 slot;
- Status status = Status::Free;
- IGBPBuffer igbp_buffer;
- BufferTransformFlags transform;
- Common::Rectangle<int> crop_rect;
- u32 swap_interval;
- Service::Nvidia::MultiFence multi_fence;
- };
-
- void SetPreallocatedBuffer(u32 slot, const IGBPBuffer& igbp_buffer);
- std::optional<std::pair<u32, Service::Nvidia::MultiFence*>> DequeueBuffer(u32 width,
- u32 height);
- const IGBPBuffer& RequestBuffer(u32 slot) const;
- void QueueBuffer(u32 slot, BufferTransformFlags transform,
- const Common::Rectangle<int>& crop_rect, u32 swap_interval,
- Service::Nvidia::MultiFence& multi_fence);
- void CancelBuffer(u32 slot, const Service::Nvidia::MultiFence& multi_fence);
- std::optional<std::reference_wrapper<const Buffer>> AcquireBuffer();
- void ReleaseBuffer(u32 slot);
- void Connect();
- void Disconnect();
- u32 Query(QueryType type);
-
- u32 GetId() const {
- return id;
- }
-
- bool IsConnected() const {
- return is_connect;
- }
-
- Kernel::KWritableEvent& GetWritableBufferWaitEvent();
-
- Kernel::KReadableEvent& GetBufferWaitEvent();
-
-private:
- BufferQueue(const BufferQueue&) = delete;
-
- u32 id{};
- u64 layer_id{};
- std::atomic_bool is_connect{};
-
- std::list<u32> free_buffers;
- std::array<Buffer, buffer_slots> buffers;
- std::list<u32> queue_sequence;
- Kernel::KEvent* buffer_wait_event{};
-
- std::mutex free_buffers_mutex;
- std::condition_variable free_buffers_condition;
-
- std::mutex queue_sequence_mutex;
-
- KernelHelpers::ServiceContext& service_context;
-};
-
-} // namespace Service::NVFlinger
diff --git a/src/core/hle/service/nvflinger/buffer_queue_consumer.cpp b/src/core/hle/service/nvflinger/buffer_queue_consumer.cpp
new file mode 100644
index 000000000..3ab9a8c05
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_queue_consumer.cpp
@@ -0,0 +1,231 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/libs/gui/BufferQueueConsumer.cpp
+
+#include "common/logging/log.h"
+#include "core/hle/service/nvflinger/buffer_item.h"
+#include "core/hle/service/nvflinger/buffer_queue_consumer.h"
+#include "core/hle/service/nvflinger/buffer_queue_core.h"
+#include "core/hle/service/nvflinger/producer_listener.h"
+
+namespace Service::android {
+
+BufferQueueConsumer::BufferQueueConsumer(std::shared_ptr<BufferQueueCore> core_)
+ : core{std::move(core_)}, slots{core->slots} {}
+
+BufferQueueConsumer::~BufferQueueConsumer() = default;
+
+Status BufferQueueConsumer::AcquireBuffer(BufferItem* out_buffer,
+ std::chrono::nanoseconds expected_present) {
+ std::scoped_lock lock{core->mutex};
+
+ // Check that the consumer doesn't currently have the maximum number of buffers acquired.
+ const s32 num_acquired_buffers{
+ static_cast<s32>(std::count_if(slots.begin(), slots.end(), [](const auto& slot) {
+ return slot.buffer_state == BufferState::Acquired;
+ }))};
+
+ if (num_acquired_buffers >= core->max_acquired_buffer_count + 1) {
+ LOG_ERROR(Service_NVFlinger, "max acquired buffer count reached: {} (max {})",
+ num_acquired_buffers, core->max_acquired_buffer_count);
+ return Status::InvalidOperation;
+ }
+
+ // Check if the queue is empty.
+ if (core->queue.empty()) {
+ return Status::NoBufferAvailable;
+ }
+
+ auto front(core->queue.begin());
+
+ // If expected_present is specified, we may not want to return a buffer yet.
+ if (expected_present.count() != 0) {
+ constexpr auto MAX_REASONABLE_NSEC = 1000000000LL; // 1 second
+
+ // The expected_present argument indicates when the buffer is expected to be presented
+ // on-screen.
+ while (core->queue.size() > 1 && !core->queue[0].is_auto_timestamp) {
+ const auto& buffer_item{core->queue[1]};
+
+ // If entry[1] is timely, drop entry[0] (and repeat).
+ const auto desired_present = buffer_item.timestamp;
+ if (desired_present < expected_present.count() - MAX_REASONABLE_NSEC ||
+ desired_present > expected_present.count()) {
+ // This buffer is set to display in the near future, or desired_present is garbage.
+ LOG_DEBUG(Service_NVFlinger, "nodrop desire={} expect={}", desired_present,
+ expected_present.count());
+ break;
+ }
+
+ LOG_DEBUG(Service_NVFlinger, "drop desire={} expect={} size={}", desired_present,
+ expected_present.count(), core->queue.size());
+
+ if (core->StillTracking(*front)) {
+ // Front buffer is still in mSlots, so mark the slot as free
+ slots[front->slot].buffer_state = BufferState::Free;
+ }
+
+ core->queue.erase(front);
+ front = core->queue.begin();
+ }
+
+ // See if the front buffer is ready to be acquired.
+ const auto desired_present = front->timestamp;
+ if (desired_present > expected_present.count() &&
+ desired_present < expected_present.count() + MAX_REASONABLE_NSEC) {
+ LOG_DEBUG(Service_NVFlinger, "defer desire={} expect={}", desired_present,
+ expected_present.count());
+ return Status::PresentLater;
+ }
+
+ LOG_DEBUG(Service_NVFlinger, "accept desire={} expect={}", desired_present,
+ expected_present.count());
+ }
+
+ const auto slot = front->slot;
+ *out_buffer = *front;
+
+ LOG_DEBUG(Service_NVFlinger, "acquiring slot={}", slot);
+
+ // If the front buffer is still being tracked, update its slot state
+ if (core->StillTracking(*front)) {
+ slots[slot].acquire_called = true;
+ slots[slot].needs_cleanup_on_release = false;
+ slots[slot].buffer_state = BufferState::Acquired;
+ slots[slot].fence = Fence::NoFence();
+ }
+
+ // If the buffer has previously been acquired by the consumer, set graphic_buffer to nullptr to
+ // avoid unnecessarily remapping this buffer on the consumer side.
+ if (out_buffer->acquire_called) {
+ out_buffer->graphic_buffer = nullptr;
+ }
+
+ core->queue.erase(front);
+
+ // We might have freed a slot while dropping old buffers, or the producer may be blocked
+ // waiting for the number of buffers in the queue to decrease.
+ core->SignalDequeueCondition();
+
+ return Status::NoError;
+}
+
+Status BufferQueueConsumer::ReleaseBuffer(s32 slot, u64 frame_number, const Fence& release_fence) {
+ if (slot < 0 || slot >= BufferQueueDefs::NUM_BUFFER_SLOTS) {
+ LOG_ERROR(Service_NVFlinger, "slot {} out of range", slot);
+ return Status::BadValue;
+ }
+
+ std::shared_ptr<IProducerListener> listener;
+ {
+ std::scoped_lock lock{core->mutex};
+
+ // If the frame number has changed because the buffer has been reallocated, we can ignore
+ // this ReleaseBuffer for the old buffer.
+ if (frame_number != slots[slot].frame_number) {
+ return Status::StaleBufferSlot;
+ }
+
+ // Make sure this buffer hasn't been queued while acquired by the consumer.
+ auto current(core->queue.begin());
+ while (current != core->queue.end()) {
+ if (current->slot == slot) {
+ LOG_ERROR(Service_NVFlinger, "buffer slot {} pending release is currently queued",
+ slot);
+ return Status::BadValue;
+ }
+ ++current;
+ }
+
+ if (slots[slot].buffer_state == BufferState::Acquired) {
+ slots[slot].fence = release_fence;
+ slots[slot].buffer_state = BufferState::Free;
+
+ listener = core->connected_producer_listener;
+
+ LOG_DEBUG(Service_NVFlinger, "releasing slot {}", slot);
+ } else if (slots[slot].needs_cleanup_on_release) {
+ LOG_DEBUG(Service_NVFlinger, "releasing a stale buffer slot {} (state = {})", slot,
+ slots[slot].buffer_state);
+
+ slots[slot].needs_cleanup_on_release = false;
+
+ return Status::StaleBufferSlot;
+ } else {
+ LOG_ERROR(Service_NVFlinger, "attempted to release buffer slot {} but its state was {}",
+ slot, slots[slot].buffer_state);
+
+ return Status::BadValue;
+ }
+
+ core->SignalDequeueCondition();
+ }
+
+ // Call back without lock held
+ if (listener != nullptr) {
+ listener->OnBufferReleased();
+ }
+
+ return Status::NoError;
+}
+
+Status BufferQueueConsumer::Connect(std::shared_ptr<IConsumerListener> consumer_listener,
+ bool controlled_by_app) {
+ if (consumer_listener == nullptr) {
+ LOG_ERROR(Service_NVFlinger, "consumer_listener may not be nullptr");
+ return Status::BadValue;
+ }
+
+ LOG_DEBUG(Service_NVFlinger, "controlled_by_app={}", controlled_by_app);
+
+ std::scoped_lock lock{core->mutex};
+
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return Status::NoInit;
+ }
+
+ core->consumer_listener = consumer_listener;
+ core->consumer_controlled_by_app = controlled_by_app;
+
+ return Status::NoError;
+}
+
+Status BufferQueueConsumer::GetReleasedBuffers(u64* out_slot_mask) {
+ if (out_slot_mask == nullptr) {
+ LOG_ERROR(Service_NVFlinger, "out_slot_mask may not be nullptr");
+ return Status::BadValue;
+ }
+
+ std::scoped_lock lock{core->mutex};
+
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return Status::NoInit;
+ }
+
+ u64 mask = 0;
+ for (int s = 0; s < BufferQueueDefs::NUM_BUFFER_SLOTS; ++s) {
+ if (!slots[s].acquire_called) {
+ mask |= (1ULL << s);
+ }
+ }
+
+ // Remove from the mask queued buffers for which acquire has been called, since the consumer
+ // will not receive their buffer addresses and so must retain their cached information
+ auto current(core->queue.begin());
+ while (current != core->queue.end()) {
+ if (current->acquire_called) {
+ mask &= ~(1ULL << current->slot);
+ }
+ ++current;
+ }
+
+ LOG_DEBUG(Service_NVFlinger, "returning mask {}", mask);
+ *out_slot_mask = mask;
+ return Status::NoError;
+}
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/buffer_queue_consumer.h b/src/core/hle/service/nvflinger/buffer_queue_consumer.h
new file mode 100644
index 000000000..8a047fe06
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_queue_consumer.h
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/BufferQueueConsumer.h
+
+#pragma once
+
+#include <chrono>
+#include <memory>
+
+#include "common/common_types.h"
+#include "core/hle/service/nvflinger/buffer_queue_defs.h"
+#include "core/hle/service/nvflinger/status.h"
+
+namespace Service::android {
+
+class BufferItem;
+class BufferQueueCore;
+class IConsumerListener;
+
+class BufferQueueConsumer final {
+public:
+ explicit BufferQueueConsumer(std::shared_ptr<BufferQueueCore> core_);
+ ~BufferQueueConsumer();
+
+ Status AcquireBuffer(BufferItem* out_buffer, std::chrono::nanoseconds expected_present);
+ Status ReleaseBuffer(s32 slot, u64 frame_number, const Fence& release_fence);
+ Status Connect(std::shared_ptr<IConsumerListener> consumer_listener, bool controlled_by_app);
+ Status GetReleasedBuffers(u64* out_slot_mask);
+
+private:
+ std::shared_ptr<BufferQueueCore> core;
+ BufferQueueDefs::SlotsType& slots;
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/buffer_queue_core.cpp b/src/core/hle/service/nvflinger/buffer_queue_core.cpp
new file mode 100644
index 000000000..ec5aabaeb
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_queue_core.cpp
@@ -0,0 +1,117 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/libs/gui/BufferQueueCore.cpp
+
+#include "common/assert.h"
+
+#include "core/hle/service/nvflinger/buffer_queue_core.h"
+
+namespace Service::android {
+
+BufferQueueCore::BufferQueueCore() = default;
+
+BufferQueueCore::~BufferQueueCore() = default;
+
+void BufferQueueCore::NotifyShutdown() {
+ std::scoped_lock lock{mutex};
+
+ is_shutting_down = true;
+
+ SignalDequeueCondition();
+}
+
+void BufferQueueCore::SignalDequeueCondition() {
+ dequeue_condition.notify_all();
+}
+
+bool BufferQueueCore::WaitForDequeueCondition() {
+ if (is_shutting_down) {
+ return false;
+ }
+
+ dequeue_condition.wait(mutex);
+
+ return true;
+}
+
+s32 BufferQueueCore::GetMinUndequeuedBufferCountLocked(bool async) const {
+ // If DequeueBuffer is allowed to error out, we don't have to add an extra buffer.
+ if (!use_async_buffer) {
+ return max_acquired_buffer_count;
+ }
+
+ if (dequeue_buffer_cannot_block || async) {
+ return max_acquired_buffer_count + 1;
+ }
+
+ return max_acquired_buffer_count;
+}
+
+s32 BufferQueueCore::GetMinMaxBufferCountLocked(bool async) const {
+ return GetMinUndequeuedBufferCountLocked(async) + 1;
+}
+
+s32 BufferQueueCore::GetMaxBufferCountLocked(bool async) const {
+ const auto min_buffer_count = GetMinMaxBufferCountLocked(async);
+ auto max_buffer_count = std::max(default_max_buffer_count, min_buffer_count);
+
+ if (override_max_buffer_count != 0) {
+ ASSERT(override_max_buffer_count >= min_buffer_count);
+ max_buffer_count = override_max_buffer_count;
+ }
+
+ // Any buffers that are dequeued by the producer or sitting in the queue waiting to be consumed
+ // need to have their slots preserved.
+ for (s32 slot = max_buffer_count; slot < BufferQueueDefs::NUM_BUFFER_SLOTS; ++slot) {
+ const auto state = slots[slot].buffer_state;
+ if (state == BufferState::Queued || state == BufferState::Dequeued) {
+ max_buffer_count = slot + 1;
+ }
+ }
+
+ return max_buffer_count;
+}
+
+s32 BufferQueueCore::GetPreallocatedBufferCountLocked() const {
+ return static_cast<s32>(std::count_if(slots.begin(), slots.end(),
+ [](const auto& slot) { return slot.is_preallocated; }));
+}
+
+void BufferQueueCore::FreeBufferLocked(s32 slot) {
+ LOG_DEBUG(Service_NVFlinger, "slot {}", slot);
+
+ slots[slot].graphic_buffer.reset();
+
+ if (slots[slot].buffer_state == BufferState::Acquired) {
+ slots[slot].needs_cleanup_on_release = true;
+ }
+
+ slots[slot].buffer_state = BufferState::Free;
+ slots[slot].frame_number = UINT32_MAX;
+ slots[slot].acquire_called = false;
+ slots[slot].fence = Fence::NoFence();
+}
+
+void BufferQueueCore::FreeAllBuffersLocked() {
+ buffer_has_been_queued = false;
+
+ for (s32 slot = 0; slot < BufferQueueDefs::NUM_BUFFER_SLOTS; ++slot) {
+ FreeBufferLocked(slot);
+ }
+}
+
+bool BufferQueueCore::StillTracking(const BufferItem& item) const {
+ const BufferSlot& slot = slots[item.slot];
+
+ return (slot.graphic_buffer != nullptr) && (item.graphic_buffer == slot.graphic_buffer);
+}
+
+void BufferQueueCore::WaitWhileAllocatingLocked() const {
+ while (is_allocating) {
+ is_allocating_condition.wait(mutex);
+ }
+}
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/buffer_queue_core.h b/src/core/hle/service/nvflinger/buffer_queue_core.h
new file mode 100644
index 000000000..e4e0937cb
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_queue_core.h
@@ -0,0 +1,79 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/BufferQueueCore.h
+
+#pragma once
+
+#include <condition_variable>
+#include <list>
+#include <memory>
+#include <mutex>
+#include <set>
+#include <vector>
+
+#include "core/hle/service/nvflinger/buffer_item.h"
+#include "core/hle/service/nvflinger/buffer_queue_defs.h"
+#include "core/hle/service/nvflinger/pixel_format.h"
+#include "core/hle/service/nvflinger/status.h"
+#include "core/hle/service/nvflinger/window.h"
+
+namespace Service::android {
+
+class IConsumerListener;
+class IProducerListener;
+
+class BufferQueueCore final {
+ friend class BufferQueueProducer;
+ friend class BufferQueueConsumer;
+
+public:
+ static constexpr s32 INVALID_BUFFER_SLOT = BufferItem::INVALID_BUFFER_SLOT;
+
+ BufferQueueCore();
+ ~BufferQueueCore();
+
+ void NotifyShutdown();
+
+private:
+ void SignalDequeueCondition();
+ bool WaitForDequeueCondition();
+
+ s32 GetMinUndequeuedBufferCountLocked(bool async) const;
+ s32 GetMinMaxBufferCountLocked(bool async) const;
+ s32 GetMaxBufferCountLocked(bool async) const;
+ s32 GetPreallocatedBufferCountLocked() const;
+ void FreeBufferLocked(s32 slot);
+ void FreeAllBuffersLocked();
+ bool StillTracking(const BufferItem& item) const;
+ void WaitWhileAllocatingLocked() const;
+
+private:
+ mutable std::mutex mutex;
+ bool is_abandoned{};
+ bool consumer_controlled_by_app{};
+ std::shared_ptr<IConsumerListener> consumer_listener;
+ u32 consumer_usage_bit{};
+ NativeWindowApi connected_api{NativeWindowApi::NoConnectedApi};
+ std::shared_ptr<IProducerListener> connected_producer_listener;
+ BufferQueueDefs::SlotsType slots{};
+ std::vector<BufferItem> queue;
+ s32 override_max_buffer_count{};
+ mutable std::condition_variable_any dequeue_condition;
+ const bool use_async_buffer{}; // This is always disabled on HOS
+ bool dequeue_buffer_cannot_block{};
+ PixelFormat default_buffer_format{PixelFormat::Rgba8888};
+ u32 default_width{1};
+ u32 default_height{1};
+ s32 default_max_buffer_count{2};
+ const s32 max_acquired_buffer_count{}; // This is always zero on HOS
+ bool buffer_has_been_queued{};
+ u64 frame_counter{};
+ u32 transform_hint{};
+ bool is_allocating{};
+ mutable std::condition_variable_any is_allocating_condition;
+ bool is_shutting_down{};
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/buffer_queue_defs.h b/src/core/hle/service/nvflinger/buffer_queue_defs.h
new file mode 100644
index 000000000..387d3d36a
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_queue_defs.h
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/BufferQueueDefs.h
+
+#pragma once
+
+#include <array>
+
+#include "common/common_types.h"
+#include "core/hle/service/nvflinger/buffer_slot.h"
+
+namespace Service::android::BufferQueueDefs {
+
+// BufferQueue will keep track of at most this value of buffers.
+constexpr s32 NUM_BUFFER_SLOTS = 64;
+
+using SlotsType = std::array<BufferSlot, NUM_BUFFER_SLOTS>;
+
+} // namespace Service::android::BufferQueueDefs
diff --git a/src/core/hle/service/nvflinger/buffer_queue_producer.cpp b/src/core/hle/service/nvflinger/buffer_queue_producer.cpp
new file mode 100644
index 000000000..6f604a88e
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_queue_producer.cpp
@@ -0,0 +1,923 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/libs/gui/BufferQueueProducer.cpp
+
+#include "common/assert.h"
+#include "common/logging/log.h"
+#include "common/settings.h"
+#include "core/core.h"
+#include "core/hle/kernel/hle_ipc.h"
+#include "core/hle/kernel/k_event.h"
+#include "core/hle/kernel/k_readable_event.h"
+#include "core/hle/kernel/k_writable_event.h"
+#include "core/hle/kernel/kernel.h"
+#include "core/hle/service/kernel_helpers.h"
+#include "core/hle/service/nvdrv/nvdrv.h"
+#include "core/hle/service/nvflinger/buffer_queue_core.h"
+#include "core/hle/service/nvflinger/buffer_queue_producer.h"
+#include "core/hle/service/nvflinger/consumer_listener.h"
+#include "core/hle/service/nvflinger/parcel.h"
+#include "core/hle/service/nvflinger/ui/graphic_buffer.h"
+#include "core/hle/service/nvflinger/window.h"
+#include "core/hle/service/vi/vi.h"
+
+namespace Service::android {
+
+BufferQueueProducer::BufferQueueProducer(Service::KernelHelpers::ServiceContext& service_context_,
+ std::shared_ptr<BufferQueueCore> buffer_queue_core_)
+ : service_context{service_context_}, core{std::move(buffer_queue_core_)}, slots(core->slots) {
+ buffer_wait_event = service_context.CreateEvent("BufferQueue:WaitEvent");
+}
+
+BufferQueueProducer::~BufferQueueProducer() {
+ service_context.CloseEvent(buffer_wait_event);
+}
+
+Status BufferQueueProducer::RequestBuffer(s32 slot, std::shared_ptr<GraphicBuffer>* buf) {
+ LOG_DEBUG(Service_NVFlinger, "slot {}", slot);
+
+ std::scoped_lock lock{core->mutex};
+
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return Status::NoInit;
+ }
+ if (slot < 0 || slot >= BufferQueueDefs::NUM_BUFFER_SLOTS) {
+ LOG_ERROR(Service_NVFlinger, "slot index {} out of range [0, {})", slot,
+ BufferQueueDefs::NUM_BUFFER_SLOTS);
+ return Status::BadValue;
+ } else if (slots[slot].buffer_state != BufferState::Dequeued) {
+ LOG_ERROR(Service_NVFlinger, "slot {} is not owned by the producer (state = {})", slot,
+ slots[slot].buffer_state);
+ return Status::BadValue;
+ }
+
+ slots[slot].request_buffer_called = true;
+ *buf = slots[slot].graphic_buffer;
+
+ return Status::NoError;
+}
+
+Status BufferQueueProducer::SetBufferCount(s32 buffer_count) {
+ LOG_DEBUG(Service_NVFlinger, "count = {}", buffer_count);
+
+ std::shared_ptr<IConsumerListener> listener;
+ {
+ std::scoped_lock lock{core->mutex};
+ core->WaitWhileAllocatingLocked();
+
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return Status::NoInit;
+ }
+
+ if (buffer_count > BufferQueueDefs::NUM_BUFFER_SLOTS) {
+ LOG_ERROR(Service_NVFlinger, "buffer_count {} too large (max {})", buffer_count,
+ BufferQueueDefs::NUM_BUFFER_SLOTS);
+ return Status::BadValue;
+ }
+
+ // There must be no dequeued buffers when changing the buffer count.
+ for (s32 s{}; s < BufferQueueDefs::NUM_BUFFER_SLOTS; ++s) {
+ if (slots[s].buffer_state == BufferState::Dequeued) {
+ LOG_ERROR(Service_NVFlinger, "buffer owned by producer");
+ return Status::BadValue;
+ }
+ }
+
+ if (buffer_count == 0) {
+ core->override_max_buffer_count = 0;
+ core->SignalDequeueCondition();
+ return Status::NoError;
+ }
+
+ const s32 min_buffer_slots = core->GetMinMaxBufferCountLocked(false);
+ if (buffer_count < min_buffer_slots) {
+ LOG_ERROR(Service_NVFlinger, "requested buffer count {} is less than minimum {}",
+ buffer_count, min_buffer_slots);
+ return Status::BadValue;
+ }
+
+ // Here we are guaranteed that the producer doesn't have any dequeued buffers and will
+ // release all of its buffer references.
+ if (core->GetPreallocatedBufferCountLocked() <= 0) {
+ core->FreeAllBuffersLocked();
+ }
+
+ core->override_max_buffer_count = buffer_count;
+ core->SignalDequeueCondition();
+ buffer_wait_event->GetWritableEvent().Signal();
+ listener = core->consumer_listener;
+ }
+
+ // Call back without lock held
+ if (listener != nullptr) {
+ listener->OnBuffersReleased();
+ }
+
+ return Status::NoError;
+}
+
+Status BufferQueueProducer::WaitForFreeSlotThenRelock(bool async, s32* found,
+ Status* return_flags) const {
+ bool try_again = true;
+
+ while (try_again) {
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return Status::NoInit;
+ }
+
+ const s32 max_buffer_count = core->GetMaxBufferCountLocked(async);
+ if (async && core->override_max_buffer_count) {
+ if (core->override_max_buffer_count < max_buffer_count) {
+ LOG_ERROR(Service_NVFlinger, "async mode is invalid with buffer count override");
+ return Status::BadValue;
+ }
+ }
+
+ // Free up any buffers that are in slots beyond the max buffer count
+ for (s32 s = max_buffer_count; s < BufferQueueDefs::NUM_BUFFER_SLOTS; ++s) {
+ ASSERT(slots[s].buffer_state == BufferState::Free);
+ if (slots[s].graphic_buffer != nullptr) {
+ core->FreeBufferLocked(s);
+ *return_flags |= Status::ReleaseAllBuffers;
+ }
+ }
+
+ // Look for a free buffer to give to the client
+ *found = BufferQueueCore::INVALID_BUFFER_SLOT;
+ s32 dequeued_count{};
+ s32 acquired_count{};
+ for (s32 s{}; s < max_buffer_count; ++s) {
+ switch (slots[s].buffer_state) {
+ case BufferState::Dequeued:
+ ++dequeued_count;
+ break;
+ case BufferState::Acquired:
+ ++acquired_count;
+ break;
+ case BufferState::Free:
+ // We return the oldest of the free buffers to avoid stalling the producer if
+ // possible, since the consumer may still have pending reads of in-flight buffers
+ if (*found == BufferQueueCore::INVALID_BUFFER_SLOT ||
+ slots[s].frame_number < slots[*found].frame_number) {
+ *found = s;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+ // Producers are not allowed to dequeue more than one buffer if they did not set a buffer
+ // count
+ if (!core->override_max_buffer_count && dequeued_count) {
+ LOG_ERROR(Service_NVFlinger,
+ "can't dequeue multiple buffers without setting the buffer count");
+ return Status::InvalidOperation;
+ }
+
+ // See whether a buffer has been queued since the last SetBufferCount so we know whether to
+ // perform the min undequeued buffers check below
+ if (core->buffer_has_been_queued) {
+ // Make sure the producer is not trying to dequeue more buffers than allowed
+ const s32 new_undequeued_count = max_buffer_count - (dequeued_count + 1);
+ const s32 min_undequeued_count = core->GetMinUndequeuedBufferCountLocked(async);
+ if (new_undequeued_count < min_undequeued_count) {
+ LOG_ERROR(Service_NVFlinger,
+ "min undequeued buffer count({}) exceeded (dequeued={} undequeued={})",
+ min_undequeued_count, dequeued_count, new_undequeued_count);
+ return Status::InvalidOperation;
+ }
+ }
+
+ // If we disconnect and reconnect quickly, we can be in a state where our slots are empty
+ // but we have many buffers in the queue. This can cause us to run out of memory if we
+ // outrun the consumer. Wait here if it looks like we have too many buffers queued up.
+ const bool too_many_buffers = core->queue.size() > static_cast<size_t>(max_buffer_count);
+ if (too_many_buffers) {
+ LOG_ERROR(Service_NVFlinger, "queue size is {}, waiting", core->queue.size());
+ }
+
+ // If no buffer is found, or if the queue has too many buffers outstanding, wait for a
+ // buffer to be acquired or released, or for the max buffer count to change.
+ try_again = (*found == BufferQueueCore::INVALID_BUFFER_SLOT) || too_many_buffers;
+ if (try_again) {
+ // Return an error if we're in non-blocking mode (producer and consumer are controlled
+ // by the application).
+ if (core->dequeue_buffer_cannot_block &&
+ (acquired_count <= core->max_acquired_buffer_count)) {
+ return Status::WouldBlock;
+ }
+
+ if (!core->WaitForDequeueCondition()) {
+ // We are no longer running
+ return Status::NoError;
+ }
+ }
+ }
+
+ return Status::NoError;
+}
+
+Status BufferQueueProducer::DequeueBuffer(s32* out_slot, Fence* out_fence, bool async, u32 width,
+ u32 height, PixelFormat format, u32 usage) {
+ LOG_DEBUG(Service_NVFlinger, "async={} w={} h={} format={}, usage={}", async ? "true" : "false",
+ width, height, format, usage);
+
+ if ((width != 0 && height == 0) || (width == 0 && height != 0)) {
+ LOG_ERROR(Service_NVFlinger, "invalid size: w={} h={}", width, height);
+ return Status::BadValue;
+ }
+
+ Status return_flags = Status::NoError;
+ bool attached_by_consumer = false;
+ {
+ std::scoped_lock lock{core->mutex};
+ core->WaitWhileAllocatingLocked();
+
+ if (format == PixelFormat::NoFormat) {
+ format = core->default_buffer_format;
+ }
+
+ // Enable the usage bits the consumer requested
+ usage |= core->consumer_usage_bit;
+
+ s32 found{};
+ Status status = WaitForFreeSlotThenRelock(async, &found, &return_flags);
+ if (status != Status::NoError) {
+ return status;
+ }
+
+ // This should not happen
+ if (found == BufferQueueCore::INVALID_BUFFER_SLOT) {
+ LOG_ERROR(Service_NVFlinger, "no available buffer slots");
+ return Status::Busy;
+ }
+
+ *out_slot = found;
+
+ attached_by_consumer = slots[found].attached_by_consumer;
+
+ const bool use_default_size = !width && !height;
+ if (use_default_size) {
+ width = core->default_width;
+ height = core->default_height;
+ }
+
+ slots[found].buffer_state = BufferState::Dequeued;
+
+ const std::shared_ptr<GraphicBuffer>& buffer(slots[found].graphic_buffer);
+ if ((buffer == nullptr) || (buffer->Width() != width) || (buffer->Height() != height) ||
+ (buffer->Format() != format) || ((buffer->Usage() & usage) != usage)) {
+ slots[found].acquire_called = false;
+ slots[found].graphic_buffer = nullptr;
+ slots[found].request_buffer_called = false;
+ slots[found].fence = Fence::NoFence();
+
+ return_flags |= Status::BufferNeedsReallocation;
+ }
+
+ *out_fence = slots[found].fence;
+ slots[found].fence = Fence::NoFence();
+ }
+
+ if ((return_flags & Status::BufferNeedsReallocation) != Status::None) {
+ LOG_DEBUG(Service_NVFlinger, "allocating a new buffer for slot {}", *out_slot);
+
+ auto graphic_buffer = std::make_shared<GraphicBuffer>(width, height, format, usage);
+ if (graphic_buffer == nullptr) {
+ LOG_ERROR(Service_NVFlinger, "creating GraphicBuffer failed");
+ return Status::NoMemory;
+ }
+
+ {
+ std::scoped_lock lock{core->mutex};
+
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return Status::NoInit;
+ }
+
+ slots[*out_slot].frame_number = UINT32_MAX;
+ slots[*out_slot].graphic_buffer = graphic_buffer;
+ }
+ }
+
+ if (attached_by_consumer) {
+ return_flags |= Status::BufferNeedsReallocation;
+ }
+
+ LOG_DEBUG(Service_NVFlinger, "returning slot={} frame={}, flags={}", *out_slot,
+ slots[*out_slot].frame_number, return_flags);
+
+ return return_flags;
+}
+
+Status BufferQueueProducer::DetachBuffer(s32 slot) {
+ LOG_DEBUG(Service_NVFlinger, "slot {}", slot);
+
+ std::scoped_lock lock{core->mutex};
+
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return Status::NoInit;
+ }
+
+ if (slot < 0 || slot >= BufferQueueDefs::NUM_BUFFER_SLOTS) {
+ LOG_ERROR(Service_NVFlinger, "slot {} out of range [0, {})", slot,
+ BufferQueueDefs::NUM_BUFFER_SLOTS);
+ return Status::BadValue;
+ } else if (slots[slot].buffer_state != BufferState::Dequeued) {
+ LOG_ERROR(Service_NVFlinger, "slot {} is not owned by the producer (state = {})", slot,
+ slots[slot].buffer_state);
+ return Status::BadValue;
+ } else if (!slots[slot].request_buffer_called) {
+ LOG_ERROR(Service_NVFlinger, "buffer in slot {} has not been requested", slot);
+ return Status::BadValue;
+ }
+
+ core->FreeBufferLocked(slot);
+ core->SignalDequeueCondition();
+
+ return Status::NoError;
+}
+
+Status BufferQueueProducer::DetachNextBuffer(std::shared_ptr<GraphicBuffer>* out_buffer,
+ Fence* out_fence) {
+ if (out_buffer == nullptr) {
+ LOG_ERROR(Service_NVFlinger, "out_buffer must not be nullptr");
+ return Status::BadValue;
+ } else if (out_fence == nullptr) {
+ LOG_ERROR(Service_NVFlinger, "out_fence must not be nullptr");
+ return Status::BadValue;
+ }
+
+ std::scoped_lock lock{core->mutex};
+ core->WaitWhileAllocatingLocked();
+
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return Status::NoInit;
+ }
+
+ // Find the oldest valid slot
+ int found = BufferQueueCore::INVALID_BUFFER_SLOT;
+ for (int s = 0; s < BufferQueueDefs::NUM_BUFFER_SLOTS; ++s) {
+ if (slots[s].buffer_state == BufferState::Free && slots[s].graphic_buffer != nullptr) {
+ if (found == BufferQueueCore::INVALID_BUFFER_SLOT ||
+ slots[s].frame_number < slots[found].frame_number) {
+ found = s;
+ }
+ }
+ }
+
+ if (found == BufferQueueCore::INVALID_BUFFER_SLOT) {
+ return Status::NoMemory;
+ }
+
+ LOG_DEBUG(Service_NVFlinger, "Detached slot {}", found);
+
+ *out_buffer = slots[found].graphic_buffer;
+ *out_fence = slots[found].fence;
+
+ core->FreeBufferLocked(found);
+
+ return Status::NoError;
+}
+
+Status BufferQueueProducer::AttachBuffer(s32* out_slot,
+ const std::shared_ptr<GraphicBuffer>& buffer) {
+ if (out_slot == nullptr) {
+ LOG_ERROR(Service_NVFlinger, "out_slot must not be nullptr");
+ return Status::BadValue;
+ } else if (buffer == nullptr) {
+ LOG_ERROR(Service_NVFlinger, "Cannot attach nullptr buffer");
+ return Status::BadValue;
+ }
+
+ std::scoped_lock lock{core->mutex};
+ core->WaitWhileAllocatingLocked();
+
+ Status return_flags = Status::NoError;
+ s32 found{};
+
+ const auto status = WaitForFreeSlotThenRelock(false, &found, &return_flags);
+ if (status != Status::NoError) {
+ return status;
+ }
+
+ // This should not happen
+ if (found == BufferQueueCore::INVALID_BUFFER_SLOT) {
+ LOG_ERROR(Service_NVFlinger, "No available buffer slots");
+ return Status::Busy;
+ }
+
+ *out_slot = found;
+
+ LOG_DEBUG(Service_NVFlinger, "Returning slot {} flags={}", *out_slot, return_flags);
+
+ slots[*out_slot].graphic_buffer = buffer;
+ slots[*out_slot].buffer_state = BufferState::Dequeued;
+ slots[*out_slot].fence = Fence::NoFence();
+ slots[*out_slot].request_buffer_called = true;
+
+ return return_flags;
+}
+
+Status BufferQueueProducer::QueueBuffer(s32 slot, const QueueBufferInput& input,
+ QueueBufferOutput* output) {
+ s64 timestamp{};
+ bool is_auto_timestamp{};
+ Common::Rectangle<s32> crop;
+ NativeWindowScalingMode scaling_mode{};
+ NativeWindowTransform transform;
+ u32 sticky_transform_{};
+ bool async{};
+ s32 swap_interval{};
+ Fence fence{};
+
+ input.Deflate(&timestamp, &is_auto_timestamp, &crop, &scaling_mode, &transform,
+ &sticky_transform_, &async, &swap_interval, &fence);
+
+ switch (scaling_mode) {
+ case NativeWindowScalingMode::Freeze:
+ case NativeWindowScalingMode::ScaleToWindow:
+ case NativeWindowScalingMode::ScaleCrop:
+ case NativeWindowScalingMode::NoScaleCrop:
+ break;
+ default:
+ LOG_ERROR(Service_NVFlinger, "unknown scaling mode {}", scaling_mode);
+ return Status::BadValue;
+ }
+
+ std::shared_ptr<IConsumerListener> frame_available_listener;
+ std::shared_ptr<IConsumerListener> frame_replaced_listener;
+ s32 callback_ticket{};
+ BufferItem item;
+
+ {
+ std::scoped_lock lock{core->mutex};
+
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return Status::NoInit;
+ }
+
+ const s32 max_buffer_count = core->GetMaxBufferCountLocked(async);
+ if (async && core->override_max_buffer_count) {
+ if (core->override_max_buffer_count < max_buffer_count) {
+ LOG_ERROR(Service_NVFlinger, "async mode is invalid with "
+ "buffer count override");
+ return Status::BadValue;
+ }
+ }
+
+ if (slot < 0 || slot >= max_buffer_count) {
+ LOG_ERROR(Service_NVFlinger, "slot index {} out of range [0, {})", slot,
+ max_buffer_count);
+ return Status::BadValue;
+ } else if (slots[slot].buffer_state != BufferState::Dequeued) {
+ LOG_ERROR(Service_NVFlinger,
+ "slot {} is not owned by the producer "
+ "(state = {})",
+ slot, slots[slot].buffer_state);
+ return Status::BadValue;
+ } else if (!slots[slot].request_buffer_called) {
+ LOG_ERROR(Service_NVFlinger,
+ "slot {} was queued without requesting "
+ "a buffer",
+ slot);
+ return Status::BadValue;
+ }
+
+ LOG_DEBUG(Service_NVFlinger,
+ "slot={} frame={} time={} crop=[{},{},{},{}] transform={} scale={}", slot,
+ core->frame_counter + 1, timestamp, crop.Left(), crop.Top(), crop.Right(),
+ crop.Bottom(), transform, scaling_mode);
+
+ const std::shared_ptr<GraphicBuffer>& graphic_buffer(slots[slot].graphic_buffer);
+ Common::Rectangle<s32> buffer_rect(graphic_buffer->Width(), graphic_buffer->Height());
+ Common::Rectangle<s32> cropped_rect;
+ [[maybe_unused]] const bool unused = crop.Intersect(buffer_rect, &cropped_rect);
+
+ if (cropped_rect != crop) {
+ LOG_ERROR(Service_NVFlinger, "crop rect is not contained within the buffer in slot {}",
+ slot);
+ return Status::BadValue;
+ }
+
+ slots[slot].fence = fence;
+ slots[slot].buffer_state = BufferState::Queued;
+ ++core->frame_counter;
+ slots[slot].frame_number = core->frame_counter;
+
+ item.acquire_called = slots[slot].acquire_called;
+ item.graphic_buffer = slots[slot].graphic_buffer;
+ item.crop = crop;
+ item.transform = transform & ~NativeWindowTransform::InverseDisplay;
+ item.transform_to_display_inverse =
+ (transform & NativeWindowTransform::InverseDisplay) != NativeWindowTransform::None;
+ item.scaling_mode = static_cast<u32>(scaling_mode);
+ item.timestamp = timestamp;
+ item.is_auto_timestamp = is_auto_timestamp;
+ item.frame_number = core->frame_counter;
+ item.slot = slot;
+ item.fence = fence;
+ item.is_droppable = core->dequeue_buffer_cannot_block || async;
+ item.swap_interval = swap_interval;
+
+ sticky_transform = sticky_transform_;
+
+ if (core->queue.empty()) {
+ // When the queue is empty, we can simply queue this buffer
+ core->queue.push_back(item);
+ frame_available_listener = core->consumer_listener;
+ } else {
+ // When the queue is not empty, we need to look at the front buffer
+ // state to see if we need to replace it
+ auto front(core->queue.begin());
+
+ if (front->is_droppable) {
+ // If the front queued buffer is still being tracked, we first
+ // mark it as freed
+ if (core->StillTracking(*front)) {
+ slots[front->slot].buffer_state = BufferState::Free;
+ // Reset the frame number of the freed buffer so that it is the first in line to
+ // be dequeued again
+ slots[front->slot].frame_number = 0;
+ }
+ // Overwrite the droppable buffer with the incoming one
+ *front = item;
+ frame_replaced_listener = core->consumer_listener;
+ } else {
+ core->queue.push_back(item);
+ frame_available_listener = core->consumer_listener;
+ }
+ }
+
+ core->buffer_has_been_queued = true;
+ core->SignalDequeueCondition();
+ output->Inflate(core->default_width, core->default_height, core->transform_hint,
+ static_cast<u32>(core->queue.size()));
+
+ // Take a ticket for the callback functions
+ callback_ticket = next_callback_ticket++;
+ }
+
+ // Don't send the GraphicBuffer through the callback, and don't send the slot number, since the
+ // consumer shouldn't need it
+ item.graphic_buffer.reset();
+ item.slot = BufferItem::INVALID_BUFFER_SLOT;
+
+ // Call back without the main BufferQueue lock held, but with the callback lock held so we can
+ // ensure that callbacks occur in order
+ {
+ std::scoped_lock lock{callback_mutex};
+ while (callback_ticket != current_callback_ticket) {
+ callback_condition.wait(callback_mutex);
+ }
+
+ if (frame_available_listener != nullptr) {
+ frame_available_listener->OnFrameAvailable(item);
+ } else if (frame_replaced_listener != nullptr) {
+ frame_replaced_listener->OnFrameReplaced(item);
+ }
+
+ ++current_callback_ticket;
+ callback_condition.notify_all();
+ }
+
+ return Status::NoError;
+}
+
+void BufferQueueProducer::CancelBuffer(s32 slot, const Fence& fence) {
+ LOG_DEBUG(Service_NVFlinger, "slot {}", slot);
+
+ std::scoped_lock lock{core->mutex};
+
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return;
+ }
+
+ if (slot < 0 || slot >= BufferQueueDefs::NUM_BUFFER_SLOTS) {
+ LOG_ERROR(Service_NVFlinger, "slot index {} out of range [0, {})", slot,
+ BufferQueueDefs::NUM_BUFFER_SLOTS);
+ return;
+ } else if (slots[slot].buffer_state != BufferState::Dequeued) {
+ LOG_ERROR(Service_NVFlinger, "slot {} is not owned by the producer (state = {})", slot,
+ slots[slot].buffer_state);
+ return;
+ }
+
+ slots[slot].buffer_state = BufferState::Free;
+ slots[slot].frame_number = 0;
+ slots[slot].fence = fence;
+
+ core->SignalDequeueCondition();
+ buffer_wait_event->GetWritableEvent().Signal();
+}
+
+Status BufferQueueProducer::Query(NativeWindow what, s32* out_value) {
+ std::scoped_lock lock{core->mutex};
+
+ if (out_value == nullptr) {
+ LOG_ERROR(Service_NVFlinger, "outValue was nullptr");
+ return Status::BadValue;
+ }
+
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return Status::NoInit;
+ }
+
+ u32 value{};
+ switch (what) {
+ case NativeWindow::Width:
+ value = core->default_width;
+ break;
+ case NativeWindow::Height:
+ value = core->default_height;
+ break;
+ case NativeWindow::Format:
+ value = static_cast<u32>(core->default_buffer_format);
+ break;
+ case NativeWindow::MinUndequeedBuffers:
+ value = core->GetMinUndequeuedBufferCountLocked(false);
+ break;
+ case NativeWindow::StickyTransform:
+ value = sticky_transform;
+ break;
+ case NativeWindow::ConsumerRunningBehind:
+ value = (core->queue.size() > 1);
+ break;
+ case NativeWindow::ConsumerUsageBits:
+ value = core->consumer_usage_bit;
+ break;
+ default:
+ UNREACHABLE();
+ return Status::BadValue;
+ }
+
+ LOG_DEBUG(Service_NVFlinger, "what = {}, value = {}", what, value);
+
+ *out_value = static_cast<s32>(value);
+
+ return Status::NoError;
+}
+
+Status BufferQueueProducer::Connect(const std::shared_ptr<IProducerListener>& listener,
+ NativeWindowApi api, bool producer_controlled_by_app,
+ QueueBufferOutput* output) {
+ std::scoped_lock lock{core->mutex};
+
+ LOG_DEBUG(Service_NVFlinger, "api = {} producer_controlled_by_app = {}", api,
+ producer_controlled_by_app);
+
+ if (core->is_abandoned) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has been abandoned");
+ return Status::NoInit;
+ }
+
+ if (core->consumer_listener == nullptr) {
+ LOG_ERROR(Service_NVFlinger, "BufferQueue has no consumer");
+ return Status::NoInit;
+ }
+
+ if (output == nullptr) {
+ LOG_ERROR(Service_NVFlinger, "output was nullptr");
+ return Status::BadValue;
+ }
+
+ if (core->connected_api != NativeWindowApi::NoConnectedApi) {
+ LOG_ERROR(Service_NVFlinger, "already connected (cur = {} req = {})", core->connected_api,
+ api);
+ return Status::BadValue;
+ }
+
+ Status status = Status::NoError;
+ switch (api) {
+ case NativeWindowApi::Egl:
+ case NativeWindowApi::Cpu:
+ case NativeWindowApi::Media:
+ case NativeWindowApi::Camera:
+ core->connected_api = api;
+ output->Inflate(core->default_width, core->default_height, core->transform_hint,
+ static_cast<u32>(core->queue.size()));
+ core->connected_producer_listener = listener;
+ break;
+ default:
+ LOG_ERROR(Service_NVFlinger, "unknown api = {}", api);
+ status = Status::BadValue;
+ break;
+ }
+
+ core->buffer_has_been_queued = false;
+ core->dequeue_buffer_cannot_block =
+ core->consumer_controlled_by_app && producer_controlled_by_app;
+
+ return status;
+}
+
+Status BufferQueueProducer::Disconnect(NativeWindowApi api) {
+ LOG_DEBUG(Service_NVFlinger, "api = {}", api);
+
+ Status status = Status::NoError;
+ std::shared_ptr<IConsumerListener> listener;
+
+ {
+ std::scoped_lock lock{core->mutex};
+
+ core->WaitWhileAllocatingLocked();
+
+ if (core->is_abandoned) {
+ // Disconnecting after the surface has been abandoned is a no-op.
+ return Status::NoError;
+ }
+
+ switch (api) {
+ case NativeWindowApi::Egl:
+ case NativeWindowApi::Cpu:
+ case NativeWindowApi::Media:
+ case NativeWindowApi::Camera:
+ if (core->connected_api == api) {
+ core->FreeAllBuffersLocked();
+ core->connected_producer_listener = nullptr;
+ core->connected_api = NativeWindowApi::NoConnectedApi;
+ core->SignalDequeueCondition();
+ buffer_wait_event->GetWritableEvent().Signal();
+ listener = core->consumer_listener;
+ } else {
+ LOG_ERROR(Service_NVFlinger, "still connected to another api (cur = {} req = {})",
+ core->connected_api, api);
+ status = Status::BadValue;
+ }
+ break;
+ default:
+ LOG_ERROR(Service_NVFlinger, "unknown api = {}", api);
+ status = Status::BadValue;
+ break;
+ }
+ }
+
+ // Call back without lock held
+ if (listener != nullptr) {
+ listener->OnBuffersReleased();
+ }
+
+ return status;
+}
+
+Status BufferQueueProducer::SetPreallocatedBuffer(s32 slot,
+ const std::shared_ptr<GraphicBuffer>& buffer) {
+ LOG_DEBUG(Service_NVFlinger, "slot {}", slot);
+
+ if (slot < 0 || slot >= BufferQueueDefs::NUM_BUFFER_SLOTS) {
+ return Status::BadValue;
+ }
+
+ std::scoped_lock lock{core->mutex};
+
+ slots[slot] = {};
+ slots[slot].graphic_buffer = buffer;
+ slots[slot].frame_number = 0;
+
+ // Most games preallocate a buffer and pass a valid buffer here. However, it is possible for
+ // this to be called with an empty buffer, Naruto Ultimate Ninja Storm is a game that does this.
+ if (buffer) {
+ slots[slot].is_preallocated = true;
+
+ core->override_max_buffer_count = core->GetPreallocatedBufferCountLocked();
+ core->default_width = buffer->Width();
+ core->default_height = buffer->Height();
+ core->default_buffer_format = buffer->Format();
+ }
+
+ core->SignalDequeueCondition();
+ buffer_wait_event->GetWritableEvent().Signal();
+
+ return Status::NoError;
+}
+
+void BufferQueueProducer::Transact(Kernel::HLERequestContext& ctx, TransactionId code, u32 flags) {
+ Status status{Status::NoError};
+ Parcel parcel_in{ctx.ReadBuffer()};
+ Parcel parcel_out{};
+
+ switch (code) {
+ case TransactionId::Connect: {
+ const auto enable_listener = parcel_in.Read<bool>();
+ const auto api = parcel_in.Read<NativeWindowApi>();
+ const auto producer_controlled_by_app = parcel_in.Read<bool>();
+
+ UNIMPLEMENTED_IF_MSG(enable_listener, "Listener is unimplemented!");
+
+ std::shared_ptr<IProducerListener> listener;
+ QueueBufferOutput output{};
+
+ status = Connect(listener, api, producer_controlled_by_app, &output);
+
+ parcel_out.Write(output);
+ break;
+ }
+ case TransactionId::SetPreallocatedBuffer: {
+ const auto slot = parcel_in.Read<s32>();
+ const auto buffer = parcel_in.ReadObject<GraphicBuffer>();
+
+ status = SetPreallocatedBuffer(slot, buffer);
+ break;
+ }
+ case TransactionId::DequeueBuffer: {
+ const auto is_async = parcel_in.Read<bool>();
+ const auto width = parcel_in.Read<u32>();
+ const auto height = parcel_in.Read<u32>();
+ const auto pixel_format = parcel_in.Read<PixelFormat>();
+ const auto usage = parcel_in.Read<u32>();
+
+ s32 slot{};
+ Fence fence{};
+
+ status = DequeueBuffer(&slot, &fence, is_async, width, height, pixel_format, usage);
+
+ parcel_out.Write(slot);
+ parcel_out.WriteObject(&fence);
+ break;
+ }
+ case TransactionId::RequestBuffer: {
+ const auto slot = parcel_in.Read<s32>();
+
+ std::shared_ptr<GraphicBuffer> buf;
+
+ status = RequestBuffer(slot, &buf);
+
+ parcel_out.WriteObject(buf);
+ break;
+ }
+ case TransactionId::QueueBuffer: {
+ const auto slot = parcel_in.Read<s32>();
+
+ QueueBufferInput input{parcel_in};
+ QueueBufferOutput output;
+
+ status = QueueBuffer(slot, input, &output);
+
+ parcel_out.Write(output);
+ break;
+ }
+ case TransactionId::Query: {
+ const auto what = parcel_in.Read<NativeWindow>();
+
+ s32 value{};
+
+ status = Query(what, &value);
+
+ parcel_out.Write(value);
+ break;
+ }
+ case TransactionId::CancelBuffer: {
+ const auto slot = parcel_in.Read<s32>();
+ const auto fence = parcel_in.ReadFlattened<Fence>();
+
+ CancelBuffer(slot, fence);
+ break;
+ }
+ case TransactionId::Disconnect: {
+ const auto api = parcel_in.Read<NativeWindowApi>();
+
+ status = Disconnect(api);
+ break;
+ }
+ case TransactionId::DetachBuffer: {
+ const auto slot = parcel_in.Read<s32>();
+
+ status = DetachBuffer(slot);
+ break;
+ }
+ case TransactionId::SetBufferCount: {
+ const auto buffer_count = parcel_in.Read<s32>();
+
+ status = SetBufferCount(buffer_count);
+ break;
+ }
+ case TransactionId::GetBufferHistory:
+ LOG_WARNING(Service_NVFlinger, "(STUBBED) called, transaction=GetBufferHistory");
+ break;
+ default:
+ ASSERT_MSG(false, "Unimplemented TransactionId {}", code);
+ break;
+ }
+
+ parcel_out.Write(status);
+
+ ctx.WriteBuffer(parcel_out.Serialize());
+}
+
+Kernel::KReadableEvent& BufferQueueProducer::GetNativeHandle() {
+ return buffer_wait_event->GetReadableEvent();
+}
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/buffer_queue_producer.h b/src/core/hle/service/nvflinger/buffer_queue_producer.h
new file mode 100644
index 000000000..c4ca68fd3
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_queue_producer.h
@@ -0,0 +1,83 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/BufferQueueProducer.h
+
+#pragma once
+
+#include <condition_variable>
+#include <memory>
+#include <mutex>
+
+#include "common/common_funcs.h"
+#include "core/hle/service/nvdrv/nvdata.h"
+#include "core/hle/service/nvflinger/binder.h"
+#include "core/hle/service/nvflinger/buffer_queue_defs.h"
+#include "core/hle/service/nvflinger/buffer_slot.h"
+#include "core/hle/service/nvflinger/graphic_buffer_producer.h"
+#include "core/hle/service/nvflinger/pixel_format.h"
+#include "core/hle/service/nvflinger/status.h"
+#include "core/hle/service/nvflinger/window.h"
+
+namespace Kernel {
+class KernelCore;
+class KEvent;
+class KReadableEvent;
+class KWritableEvent;
+} // namespace Kernel
+
+namespace Service::KernelHelpers {
+class ServiceContext;
+} // namespace Service::KernelHelpers
+
+namespace Service::android {
+
+class BufferQueueCore;
+class IProducerListener;
+
+class BufferQueueProducer final : public IBinder {
+public:
+ explicit BufferQueueProducer(Service::KernelHelpers::ServiceContext& service_context_,
+ std::shared_ptr<BufferQueueCore> buffer_queue_core_);
+ ~BufferQueueProducer();
+
+ void Transact(Kernel::HLERequestContext& ctx, android::TransactionId code, u32 flags) override;
+
+ Kernel::KReadableEvent& GetNativeHandle() override;
+
+public:
+ Status RequestBuffer(s32 slot, std::shared_ptr<GraphicBuffer>* buf);
+ Status SetBufferCount(s32 buffer_count);
+ Status DequeueBuffer(s32* out_slot, android::Fence* out_fence, bool async, u32 width,
+ u32 height, PixelFormat format, u32 usage);
+ Status DetachBuffer(s32 slot);
+ Status DetachNextBuffer(std::shared_ptr<GraphicBuffer>* out_buffer, Fence* out_fence);
+ Status AttachBuffer(s32* outSlot, const std::shared_ptr<GraphicBuffer>& buffer);
+ Status QueueBuffer(s32 slot, const QueueBufferInput& input, QueueBufferOutput* output);
+ void CancelBuffer(s32 slot, const Fence& fence);
+ Status Query(NativeWindow what, s32* out_value);
+ Status Connect(const std::shared_ptr<IProducerListener>& listener, NativeWindowApi api,
+ bool producer_controlled_by_app, QueueBufferOutput* output);
+
+ Status Disconnect(NativeWindowApi api);
+ Status SetPreallocatedBuffer(s32 slot, const std::shared_ptr<GraphicBuffer>& buffer);
+
+private:
+ BufferQueueProducer(const BufferQueueProducer&) = delete;
+
+ Status WaitForFreeSlotThenRelock(bool async, s32* found, Status* return_flags) const;
+
+ Kernel::KEvent* buffer_wait_event{};
+ Service::KernelHelpers::ServiceContext& service_context;
+
+ std::shared_ptr<BufferQueueCore> core;
+ BufferQueueDefs::SlotsType& slots;
+ u32 sticky_transform{};
+ std::mutex callback_mutex;
+ s32 next_callback_ticket{};
+ s32 current_callback_ticket{};
+ std::condition_variable_any callback_condition;
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/buffer_slot.h b/src/core/hle/service/nvflinger/buffer_slot.h
new file mode 100644
index 000000000..e3ea58910
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_slot.h
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/BufferSlot.h
+
+#pragma once
+
+#include <memory>
+
+#include "common/common_types.h"
+#include "core/hle/service/nvflinger/ui/fence.h"
+
+namespace Service::android {
+
+class GraphicBuffer;
+
+enum class BufferState : u32 {
+ Free = 0,
+ Dequeued = 1,
+ Queued = 2,
+ Acquired = 3,
+};
+
+struct BufferSlot final {
+ constexpr BufferSlot() = default;
+
+ std::shared_ptr<GraphicBuffer> graphic_buffer;
+ BufferState buffer_state{BufferState::Free};
+ bool request_buffer_called{};
+ u64 frame_number{};
+ Fence fence;
+ bool acquire_called{};
+ bool needs_cleanup_on_release{};
+ bool attached_by_consumer{};
+ bool is_preallocated{};
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/buffer_transform_flags.h b/src/core/hle/service/nvflinger/buffer_transform_flags.h
new file mode 100644
index 000000000..e8e6300e3
--- /dev/null
+++ b/src/core/hle/service/nvflinger/buffer_transform_flags.h
@@ -0,0 +1,25 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+
+#pragma once
+
+#include "common/common_types.h"
+
+namespace Service::android {
+
+enum class BufferTransformFlags : u32 {
+ /// No transform flags are set
+ Unset = 0x00,
+ /// Flip source image horizontally (around the vertical axis)
+ FlipH = 0x01,
+ /// Flip source image vertically (around the horizontal axis)
+ FlipV = 0x02,
+ /// Rotate source image 90 degrees clockwise
+ Rotate90 = 0x04,
+ /// Rotate source image 180 degrees
+ Rotate180 = 0x03,
+ /// Rotate source image 270 degrees clockwise
+ Rotate270 = 0x07,
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/consumer_base.cpp b/src/core/hle/service/nvflinger/consumer_base.cpp
new file mode 100644
index 000000000..30fc21acc
--- /dev/null
+++ b/src/core/hle/service/nvflinger/consumer_base.cpp
@@ -0,0 +1,133 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2010 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/libs/gui/ConsumerBase.cpp
+
+#include "common/assert.h"
+#include "common/logging/log.h"
+#include "core/hle/service/nvflinger/buffer_item.h"
+#include "core/hle/service/nvflinger/buffer_queue_consumer.h"
+#include "core/hle/service/nvflinger/buffer_queue_core.h"
+#include "core/hle/service/nvflinger/consumer_base.h"
+#include "core/hle/service/nvflinger/ui/graphic_buffer.h"
+
+namespace Service::android {
+
+ConsumerBase::ConsumerBase(std::unique_ptr<BufferQueueConsumer> consumer_)
+ : consumer{std::move(consumer_)} {}
+
+ConsumerBase::~ConsumerBase() {
+ std::scoped_lock lock{mutex};
+
+ ASSERT_MSG(is_abandoned, "consumer is not abandoned!");
+}
+
+void ConsumerBase::Connect(bool controlled_by_app) {
+ consumer->Connect(shared_from_this(), controlled_by_app);
+}
+
+void ConsumerBase::FreeBufferLocked(s32 slot_index) {
+ LOG_DEBUG(Service_NVFlinger, "slot_index={}", slot_index);
+
+ slots[slot_index].graphic_buffer = nullptr;
+ slots[slot_index].fence = Fence::NoFence();
+ slots[slot_index].frame_number = 0;
+}
+
+void ConsumerBase::OnFrameAvailable(const BufferItem& item) {
+ LOG_DEBUG(Service_NVFlinger, "called");
+}
+
+void ConsumerBase::OnFrameReplaced(const BufferItem& item) {
+ LOG_DEBUG(Service_NVFlinger, "called");
+}
+
+void ConsumerBase::OnBuffersReleased() {
+ std::scoped_lock lock{mutex};
+
+ LOG_DEBUG(Service_NVFlinger, "called");
+
+ if (is_abandoned) {
+ // Nothing to do if we're already abandoned.
+ return;
+ }
+
+ u64 mask = 0;
+ consumer->GetReleasedBuffers(&mask);
+ for (int i = 0; i < BufferQueueDefs::NUM_BUFFER_SLOTS; i++) {
+ if (mask & (1ULL << i)) {
+ FreeBufferLocked(i);
+ }
+ }
+}
+
+void ConsumerBase::OnSidebandStreamChanged() {}
+
+Status ConsumerBase::AcquireBufferLocked(BufferItem* item, std::chrono::nanoseconds present_when) {
+ Status err = consumer->AcquireBuffer(item, present_when);
+ if (err != Status::NoError) {
+ return err;
+ }
+
+ if (item->graphic_buffer != nullptr) {
+ slots[item->slot].graphic_buffer = item->graphic_buffer;
+ }
+
+ slots[item->slot].frame_number = item->frame_number;
+ slots[item->slot].fence = item->fence;
+
+ LOG_DEBUG(Service_NVFlinger, "slot={}", item->slot);
+
+ return Status::NoError;
+}
+
+Status ConsumerBase::AddReleaseFenceLocked(s32 slot,
+ const std::shared_ptr<GraphicBuffer> graphic_buffer,
+ const Fence& fence) {
+ LOG_DEBUG(Service_NVFlinger, "slot={}", slot);
+
+ // If consumer no longer tracks this graphic_buffer, we can safely
+ // drop this fence, as it will never be received by the producer.
+
+ if (!StillTracking(slot, graphic_buffer)) {
+ return Status::NoError;
+ }
+
+ slots[slot].fence = fence;
+
+ return Status::NoError;
+}
+
+Status ConsumerBase::ReleaseBufferLocked(s32 slot,
+ const std::shared_ptr<GraphicBuffer> graphic_buffer) {
+ // If consumer no longer tracks this graphic_buffer (we received a new
+ // buffer on the same slot), the buffer producer is definitely no longer
+ // tracking it.
+
+ if (!StillTracking(slot, graphic_buffer)) {
+ return Status::NoError;
+ }
+
+ LOG_DEBUG(Service_NVFlinger, "slot={}", slot);
+ Status err = consumer->ReleaseBuffer(slot, slots[slot].frame_number, slots[slot].fence);
+ if (err == Status::StaleBufferSlot) {
+ FreeBufferLocked(slot);
+ }
+
+ slots[slot].fence = Fence::NoFence();
+
+ return err;
+}
+
+bool ConsumerBase::StillTracking(s32 slot,
+ const std::shared_ptr<GraphicBuffer> graphic_buffer) const {
+ if (slot < 0 || slot >= BufferQueueDefs::NUM_BUFFER_SLOTS) {
+ return false;
+ }
+
+ return (slots[slot].graphic_buffer != nullptr &&
+ slots[slot].graphic_buffer->Handle() == graphic_buffer->Handle());
+}
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/consumer_base.h b/src/core/hle/service/nvflinger/consumer_base.h
new file mode 100644
index 000000000..736080e3a
--- /dev/null
+++ b/src/core/hle/service/nvflinger/consumer_base.h
@@ -0,0 +1,60 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2010 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/ConsumerBase.h
+
+#pragma once
+
+#include <array>
+#include <chrono>
+#include <memory>
+#include <mutex>
+
+#include "common/common_types.h"
+#include "core/hle/service/nvflinger/buffer_queue_defs.h"
+#include "core/hle/service/nvflinger/consumer_listener.h"
+#include "core/hle/service/nvflinger/status.h"
+
+namespace Service::android {
+
+class BufferItem;
+class BufferQueueConsumer;
+
+class ConsumerBase : public IConsumerListener, public std::enable_shared_from_this<ConsumerBase> {
+public:
+ void Connect(bool controlled_by_app);
+
+protected:
+ explicit ConsumerBase(std::unique_ptr<BufferQueueConsumer> consumer_);
+ virtual ~ConsumerBase();
+
+ virtual void OnFrameAvailable(const BufferItem& item) override;
+ virtual void OnFrameReplaced(const BufferItem& item) override;
+ virtual void OnBuffersReleased() override;
+ virtual void OnSidebandStreamChanged() override;
+
+ void FreeBufferLocked(s32 slot_index);
+ Status AcquireBufferLocked(BufferItem* item, std::chrono::nanoseconds present_when);
+ Status ReleaseBufferLocked(s32 slot, const std::shared_ptr<GraphicBuffer> graphic_buffer);
+ bool StillTracking(s32 slot, const std::shared_ptr<GraphicBuffer> graphic_buffer) const;
+ Status AddReleaseFenceLocked(s32 slot, const std::shared_ptr<GraphicBuffer> graphic_buffer,
+ const Fence& fence);
+
+ struct Slot final {
+ std::shared_ptr<GraphicBuffer> graphic_buffer;
+ Fence fence;
+ u64 frame_number{};
+ };
+
+protected:
+ std::array<Slot, BufferQueueDefs::NUM_BUFFER_SLOTS> slots;
+
+ bool is_abandoned{};
+
+ std::unique_ptr<BufferQueueConsumer> consumer;
+
+ mutable std::mutex mutex;
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/consumer_listener.h b/src/core/hle/service/nvflinger/consumer_listener.h
new file mode 100644
index 000000000..b6d1c3e9a
--- /dev/null
+++ b/src/core/hle/service/nvflinger/consumer_listener.h
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/IConsumerListener.h
+
+#pragma once
+
+namespace Service::android {
+
+class BufferItem;
+
+/// ConsumerListener is the interface through which the BufferQueue notifies the consumer of events
+/// that the consumer may wish to react to.
+class IConsumerListener {
+public:
+ IConsumerListener() = default;
+ virtual ~IConsumerListener() = default;
+
+ virtual void OnFrameAvailable(const BufferItem& item) = 0;
+ virtual void OnFrameReplaced(const BufferItem& item) = 0;
+ virtual void OnBuffersReleased() = 0;
+ virtual void OnSidebandStreamChanged() = 0;
+};
+
+}; // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/graphic_buffer_producer.cpp b/src/core/hle/service/nvflinger/graphic_buffer_producer.cpp
new file mode 100644
index 000000000..04068827e
--- /dev/null
+++ b/src/core/hle/service/nvflinger/graphic_buffer_producer.cpp
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2010 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/libs/gui/IGraphicBufferProducer.cpp
+
+#include "core/hle/service/nvflinger/graphic_buffer_producer.h"
+#include "core/hle/service/nvflinger/parcel.h"
+
+namespace Service::android {
+
+QueueBufferInput::QueueBufferInput(Parcel& parcel) {
+ parcel.ReadFlattened(*this);
+}
+
+QueueBufferOutput::QueueBufferOutput() = default;
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/graphic_buffer_producer.h b/src/core/hle/service/nvflinger/graphic_buffer_producer.h
new file mode 100644
index 000000000..98d27871c
--- /dev/null
+++ b/src/core/hle/service/nvflinger/graphic_buffer_producer.h
@@ -0,0 +1,76 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2010 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/IGraphicBufferProducer.h
+
+#pragma once
+
+#include "common/common_funcs.h"
+#include "common/common_types.h"
+#include "common/math_util.h"
+#include "core/hle/service/nvflinger/ui/fence.h"
+#include "core/hle/service/nvflinger/window.h"
+
+namespace Service::android {
+
+class Parcel;
+
+#pragma pack(push, 1)
+struct QueueBufferInput final {
+ explicit QueueBufferInput(Parcel& parcel);
+
+ void Deflate(s64* timestamp_, bool* is_auto_timestamp_, Common::Rectangle<s32>* crop_,
+ NativeWindowScalingMode* scaling_mode_, NativeWindowTransform* transform_,
+ u32* sticky_transform_, bool* async_, s32* swap_interval_, Fence* fence_) const {
+ *timestamp_ = timestamp;
+ *is_auto_timestamp_ = static_cast<bool>(is_auto_timestamp);
+ *crop_ = crop;
+ *scaling_mode_ = scaling_mode;
+ *transform_ = transform;
+ *sticky_transform_ = sticky_transform;
+ *async_ = static_cast<bool>(async);
+ *swap_interval_ = swap_interval;
+ *fence_ = fence;
+ }
+
+private:
+ s64 timestamp{};
+ s32 is_auto_timestamp{};
+ Common::Rectangle<s32> crop{};
+ NativeWindowScalingMode scaling_mode{};
+ NativeWindowTransform transform{};
+ u32 sticky_transform{};
+ s32 async{};
+ s32 swap_interval{};
+ Fence fence{};
+};
+#pragma pack(pop)
+static_assert(sizeof(QueueBufferInput) == 84, "QueueBufferInput has wrong size");
+
+struct QueueBufferOutput final {
+ QueueBufferOutput();
+
+ void Deflate(u32* width_, u32* height_, u32* transform_hint_, u32* num_pending_buffers_) const {
+ *width_ = width;
+ *height_ = height;
+ *transform_hint_ = transform_hint;
+ *num_pending_buffers_ = num_pending_buffers;
+ }
+
+ void Inflate(u32 width_, u32 height_, u32 transform_hint_, u32 num_pending_buffers_) {
+ width = width_;
+ height = height_;
+ transform_hint = transform_hint_;
+ num_pending_buffers = num_pending_buffers_;
+ }
+
+private:
+ u32 width{};
+ u32 height{};
+ u32 transform_hint{};
+ u32 num_pending_buffers{};
+};
+static_assert(sizeof(QueueBufferOutput) == 16, "QueueBufferOutput has wrong size");
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/hos_binder_driver_server.cpp b/src/core/hle/service/nvflinger/hos_binder_driver_server.cpp
new file mode 100644
index 000000000..094ba2542
--- /dev/null
+++ b/src/core/hle/service/nvflinger/hos_binder_driver_server.cpp
@@ -0,0 +1,36 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+
+#include <mutex>
+
+#include "common/common_types.h"
+#include "core/hle/service/nvflinger/hos_binder_driver_server.h"
+
+namespace Service::NVFlinger {
+
+HosBinderDriverServer::HosBinderDriverServer(Core::System& system_)
+ : service_context(system_, "HosBinderDriverServer") {}
+
+HosBinderDriverServer::~HosBinderDriverServer() {}
+
+u64 HosBinderDriverServer::RegisterProducer(std::unique_ptr<android::IBinder>&& binder) {
+ std::scoped_lock lk{lock};
+
+ last_id++;
+
+ producers[last_id] = std::move(binder);
+
+ return last_id;
+}
+
+android::IBinder* HosBinderDriverServer::TryGetProducer(u64 id) {
+ std::scoped_lock lk{lock};
+
+ if (auto search = producers.find(id); search != producers.end()) {
+ return search->second.get();
+ }
+
+ return {};
+}
+
+} // namespace Service::NVFlinger
diff --git a/src/core/hle/service/nvflinger/hos_binder_driver_server.h b/src/core/hle/service/nvflinger/hos_binder_driver_server.h
new file mode 100644
index 000000000..cbca87fa0
--- /dev/null
+++ b/src/core/hle/service/nvflinger/hos_binder_driver_server.h
@@ -0,0 +1,37 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+
+#pragma once
+
+#include <memory>
+#include <mutex>
+#include <unordered_map>
+
+#include "common/common_types.h"
+#include "core/hle/service/kernel_helpers.h"
+#include "core/hle/service/nvflinger/binder.h"
+
+namespace Core {
+class System;
+}
+
+namespace Service::NVFlinger {
+
+class HosBinderDriverServer final {
+public:
+ explicit HosBinderDriverServer(Core::System& system_);
+ ~HosBinderDriverServer();
+
+ u64 RegisterProducer(std::unique_ptr<android::IBinder>&& binder);
+
+ android::IBinder* TryGetProducer(u64 id);
+
+private:
+ KernelHelpers::ServiceContext service_context;
+
+ std::unordered_map<u64, std::unique_ptr<android::IBinder>> producers;
+ std::mutex lock;
+ u64 last_id{};
+};
+
+} // namespace Service::NVFlinger
diff --git a/src/core/hle/service/nvflinger/nvflinger.cpp b/src/core/hle/service/nvflinger/nvflinger.cpp
index 01e69de30..6fb2cdff1 100644
--- a/src/core/hle/service/nvflinger/nvflinger.cpp
+++ b/src/core/hle/service/nvflinger/nvflinger.cpp
@@ -1,6 +1,5 @@
-// Copyright 2018 yuzu emulator team
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
#include <algorithm>
#include <optional>
@@ -16,8 +15,11 @@
#include "core/hle/kernel/k_readable_event.h"
#include "core/hle/service/nvdrv/devices/nvdisp_disp0.h"
#include "core/hle/service/nvdrv/nvdrv.h"
-#include "core/hle/service/nvflinger/buffer_queue.h"
+#include "core/hle/service/nvflinger/buffer_item_consumer.h"
+#include "core/hle/service/nvflinger/buffer_queue_core.h"
+#include "core/hle/service/nvflinger/hos_binder_driver_server.h"
#include "core/hle/service/nvflinger/nvflinger.h"
+#include "core/hle/service/nvflinger/ui/graphic_buffer.h"
#include "core/hle/service/vi/display/vi_display.h"
#include "core/hle/service/vi/layer/vi_layer.h"
#include "video_core/gpu.h"
@@ -53,13 +55,14 @@ void NVFlinger::SplitVSync(std::stop_token stop_token) {
}
}
-NVFlinger::NVFlinger(Core::System& system_)
- : system(system_), service_context(system_, "nvflinger") {
- displays.emplace_back(0, "Default", service_context, system);
- displays.emplace_back(1, "External", service_context, system);
- displays.emplace_back(2, "Edid", service_context, system);
- displays.emplace_back(3, "Internal", service_context, system);
- displays.emplace_back(4, "Null", service_context, system);
+NVFlinger::NVFlinger(Core::System& system_, HosBinderDriverServer& hos_binder_driver_server_)
+ : system(system_), service_context(system_, "nvflinger"),
+ hos_binder_driver_server(hos_binder_driver_server_) {
+ displays.emplace_back(0, "Default", hos_binder_driver_server, service_context, system);
+ displays.emplace_back(1, "External", hos_binder_driver_server, service_context, system);
+ displays.emplace_back(2, "Edid", hos_binder_driver_server, service_context, system);
+ displays.emplace_back(3, "Internal", hos_binder_driver_server, service_context, system);
+ displays.emplace_back(4, "Null", hos_binder_driver_server, service_context, system);
guard = std::make_shared<std::mutex>();
// Schedule the screen composition events
@@ -83,12 +86,15 @@ NVFlinger::NVFlinger(Core::System& system_)
}
NVFlinger::~NVFlinger() {
- for (auto& buffer_queue : buffer_queues) {
- buffer_queue->Disconnect();
- }
if (!system.IsMulticore()) {
system.CoreTiming().UnscheduleEvent(composition_event, 0);
}
+
+ for (auto& display : displays) {
+ for (size_t layer = 0; layer < display.GetNumLayers(); ++layer) {
+ display.GetLayer(layer).Core().NotifyShutdown();
+ }
+ }
}
void NVFlinger::SetNVDrvInstance(std::shared_ptr<Nvidia::Module> instance) {
@@ -98,7 +104,7 @@ void NVFlinger::SetNVDrvInstance(std::shared_ptr<Nvidia::Module> instance) {
std::optional<u64> NVFlinger::OpenDisplay(std::string_view name) {
const auto lock_guard = Lock();
- LOG_DEBUG(Service, "Opening \"{}\" display", name);
+ LOG_DEBUG(Service_NVFlinger, "Opening \"{}\" display", name);
const auto itr =
std::find_if(displays.begin(), displays.end(),
@@ -125,10 +131,8 @@ std::optional<u64> NVFlinger::CreateLayer(u64 display_id) {
}
void NVFlinger::CreateLayerAtId(VI::Display& display, u64 layer_id) {
- const u32 buffer_queue_id = next_buffer_queue_id++;
- buffer_queues.emplace_back(
- std::make_unique<BufferQueue>(system.Kernel(), buffer_queue_id, layer_id, service_context));
- display.CreateLayer(layer_id, *buffer_queues.back());
+ const auto buffer_id = next_buffer_queue_id++;
+ display.CreateLayer(layer_id, buffer_id);
}
void NVFlinger::CloseLayer(u64 layer_id) {
@@ -147,7 +151,7 @@ std::optional<u32> NVFlinger::FindBufferQueueId(u64 display_id, u64 layer_id) {
return std::nullopt;
}
- return layer->GetBufferQueue().GetId();
+ return layer->GetBinderId();
}
Kernel::KReadableEvent* NVFlinger::FindVsyncEvent(u64 display_id) {
@@ -161,18 +165,6 @@ Kernel::KReadableEvent* NVFlinger::FindVsyncEvent(u64 display_id) {
return &display->GetVSyncEvent();
}
-BufferQueue* NVFlinger::FindBufferQueue(u32 id) {
- const auto lock_guard = Lock();
- const auto itr = std::find_if(buffer_queues.begin(), buffer_queues.end(),
- [id](const auto& queue) { return queue->GetId() == id; });
-
- if (itr == buffer_queues.end()) {
- return nullptr;
- }
-
- return itr->get();
-}
-
VI::Display* NVFlinger::FindDisplay(u64 display_id) {
const auto itr =
std::find_if(displays.begin(), displays.end(),
@@ -227,7 +219,7 @@ VI::Layer* NVFlinger::FindOrCreateLayer(u64 display_id, u64 layer_id) {
auto* layer = display->FindLayer(layer_id);
if (layer == nullptr) {
- LOG_DEBUG(Service, "Layer at id {} not found. Trying to create it.", layer_id);
+ LOG_DEBUG(Service_NVFlinger, "Layer at id {} not found. Trying to create it.", layer_id);
CreateLayerAtId(*display, layer_id);
return display->FindLayer(layer_id);
}
@@ -246,23 +238,22 @@ void NVFlinger::Compose() {
// TODO(Subv): Support more than 1 layer.
VI::Layer& layer = display.GetLayer(0);
- auto& buffer_queue = layer.GetBufferQueue();
- // Search for a queued buffer and acquire it
- auto buffer = buffer_queue.AcquireBuffer();
+ android::BufferItem buffer{};
+ const auto status = layer.GetConsumer().AcquireBuffer(&buffer, {}, false);
- if (!buffer) {
+ if (status != android::Status::NoError) {
continue;
}
- const auto& igbp_buffer = buffer->get().igbp_buffer;
+ const auto& igbp_buffer = *buffer.graphic_buffer;
if (!system.IsPoweredOn()) {
return; // We are likely shutting down
}
auto& gpu = system.GPU();
- const auto& multi_fence = buffer->get().multi_fence;
+ const auto& multi_fence = buffer.fence;
guard->unlock();
for (u32 fence_id = 0; fence_id < multi_fence.num_fences; fence_id++) {
const auto& fence = multi_fence.fences[fence_id];
@@ -278,12 +269,18 @@ void NVFlinger::Compose() {
auto nvdisp = nvdrv->GetDevice<Nvidia::Devices::nvdisp_disp0>("/dev/nvdisp_disp0");
ASSERT(nvdisp);
- nvdisp->flip(igbp_buffer.gpu_buffer_id, igbp_buffer.offset, igbp_buffer.external_format,
- igbp_buffer.width, igbp_buffer.height, igbp_buffer.stride,
- buffer->get().transform, buffer->get().crop_rect);
+ Common::Rectangle<int> crop_rect{
+ static_cast<int>(buffer.crop.Left()), static_cast<int>(buffer.crop.Top()),
+ static_cast<int>(buffer.crop.Right()), static_cast<int>(buffer.crop.Bottom())};
+
+ nvdisp->flip(igbp_buffer.BufferId(), igbp_buffer.Offset(), igbp_buffer.ExternalFormat(),
+ igbp_buffer.Width(), igbp_buffer.Height(), igbp_buffer.Stride(),
+ static_cast<android::BufferTransformFlags>(buffer.transform), crop_rect);
+
+ swap_interval = buffer.swap_interval;
- swap_interval = buffer->get().swap_interval;
- buffer_queue.ReleaseBuffer(buffer->get().slot);
+ auto fence = android::Fence::NoFence();
+ layer.GetConsumer().ReleaseBuffer(buffer, fence);
}
}
diff --git a/src/core/hle/service/nvflinger/nvflinger.h b/src/core/hle/service/nvflinger/nvflinger.h
index 7935cf773..ed160f6f9 100644
--- a/src/core/hle/service/nvflinger/nvflinger.h
+++ b/src/core/hle/service/nvflinger/nvflinger.h
@@ -1,6 +1,5 @@
-// Copyright 2018 yuzu emulator team
-// Licensed under GPLv2 or any later version
-// Refer to the license.txt file included.
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
#pragma once
@@ -37,13 +36,16 @@ class Display;
class Layer;
} // namespace Service::VI
-namespace Service::NVFlinger {
+namespace Service::android {
+class BufferQueueCore;
+class BufferQueueProducer;
+} // namespace Service::android
-class BufferQueue;
+namespace Service::NVFlinger {
class NVFlinger final {
public:
- explicit NVFlinger(Core::System& system_);
+ explicit NVFlinger(Core::System& system_, HosBinderDriverServer& hos_binder_driver_server_);
~NVFlinger();
/// Sets the NVDrv module instance to use to send buffers to the GPU.
@@ -72,9 +74,6 @@ public:
/// If an invalid display ID is provided, then nullptr is returned.
[[nodiscard]] Kernel::KReadableEvent* FindVsyncEvent(u64 display_id);
- /// Obtains a buffer queue identified by the ID.
- [[nodiscard]] BufferQueue* FindBufferQueue(u32 id);
-
/// Performs a composition request to the emulated nvidia GPU and triggers the vsync events when
/// finished.
void Compose();
@@ -82,6 +81,12 @@ public:
[[nodiscard]] s64 GetNextTicks() const;
private:
+ struct Layer {
+ std::unique_ptr<android::BufferQueueCore> core;
+ std::unique_ptr<android::BufferQueueProducer> producer;
+ };
+
+private:
[[nodiscard]] std::unique_lock<std::mutex> Lock() const {
return std::unique_lock{*guard};
}
@@ -111,7 +116,6 @@ private:
std::shared_ptr<Nvidia::Module> nvdrv;
std::list<VI::Display> displays;
- std::vector<std::unique_ptr<BufferQueue>> buffer_queues;
/// Id to use for the next layer that is created, this counter is shared among all displays.
u64 next_layer_id = 1;
@@ -131,6 +135,8 @@ private:
std::jthread vsync_thread;
KernelHelpers::ServiceContext service_context;
+
+ HosBinderDriverServer& hos_binder_driver_server;
};
} // namespace Service::NVFlinger
diff --git a/src/core/hle/service/nvflinger/parcel.h b/src/core/hle/service/nvflinger/parcel.h
new file mode 100644
index 000000000..aa36e6479
--- /dev/null
+++ b/src/core/hle/service/nvflinger/parcel.h
@@ -0,0 +1,172 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+
+#pragma once
+
+#include <memory>
+#include <vector>
+
+#include "common/alignment.h"
+#include "common/assert.h"
+#include "common/common_types.h"
+
+namespace Service::android {
+
+class Parcel final {
+public:
+ static constexpr std::size_t DefaultBufferSize = 0x40;
+
+ Parcel() : buffer(DefaultBufferSize) {}
+
+ template <typename T>
+ explicit Parcel(const T& out_data) : buffer(DefaultBufferSize) {
+ Write(out_data);
+ }
+
+ explicit Parcel(std::vector<u8> in_data) : buffer(std::move(in_data)) {
+ DeserializeHeader();
+ [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
+ }
+
+ template <typename T>
+ void Read(T& val) {
+ static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable.");
+ ASSERT(read_index + sizeof(T) <= buffer.size());
+
+ std::memcpy(&val, buffer.data() + read_index, sizeof(T));
+ read_index += sizeof(T);
+ read_index = Common::AlignUp(read_index, 4);
+ }
+
+ template <typename T>
+ T Read() {
+ T val;
+ Read(val);
+ return val;
+ }
+
+ template <typename T>
+ void ReadFlattened(T& val) {
+ const auto flattened_size = Read<s64>();
+ ASSERT(sizeof(T) == flattened_size);
+ Read(val);
+ }
+
+ template <typename T>
+ T ReadFlattened() {
+ T val;
+ ReadFlattened(val);
+ return val;
+ }
+
+ template <typename T>
+ T ReadUnaligned() {
+ static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable.");
+ ASSERT(read_index + sizeof(T) <= buffer.size());
+
+ T val;
+ std::memcpy(&val, buffer.data() + read_index, sizeof(T));
+ read_index += sizeof(T);
+ return val;
+ }
+
+ template <typename T>
+ const std::shared_ptr<T> ReadObject() {
+ static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable.");
+
+ const auto is_valid{Read<bool>()};
+
+ if (is_valid) {
+ auto result = std::make_shared<T>();
+ ReadFlattened(*result);
+ return result;
+ }
+
+ return {};
+ }
+
+ std::u16string ReadInterfaceToken() {
+ [[maybe_unused]] const u32 unknown = Read<u32>();
+ const u32 length = Read<u32>();
+
+ std::u16string token;
+ token.reserve(length + 1);
+
+ for (u32 ch = 0; ch < length + 1; ++ch) {
+ token.push_back(ReadUnaligned<u16>());
+ }
+
+ read_index = Common::AlignUp(read_index, 4);
+
+ return token;
+ }
+
+ template <typename T>
+ void Write(const T& val) {
+ static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable.");
+
+ if (buffer.size() < write_index + sizeof(T)) {
+ buffer.resize(buffer.size() + sizeof(T) + DefaultBufferSize);
+ }
+
+ std::memcpy(buffer.data() + write_index, &val, sizeof(T));
+ write_index += sizeof(T);
+ write_index = Common::AlignUp(write_index, 4);
+ }
+
+ template <typename T>
+ void WriteObject(const T* ptr) {
+ static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable.");
+
+ if (!ptr) {
+ Write<u32>(0);
+ return;
+ }
+
+ Write<u32>(1);
+ Write<s64>(sizeof(T));
+ Write(*ptr);
+ }
+
+ template <typename T>
+ void WriteObject(const std::shared_ptr<T> ptr) {
+ WriteObject(ptr.get());
+ }
+
+ void DeserializeHeader() {
+ ASSERT(buffer.size() > sizeof(Header));
+
+ Header header{};
+ std::memcpy(&header, buffer.data(), sizeof(Header));
+
+ read_index = header.data_offset;
+ }
+
+ std::vector<u8> Serialize() const {
+ ASSERT(read_index == 0);
+
+ Header header{};
+ header.data_size = static_cast<u32>(write_index - sizeof(Header));
+ header.data_offset = sizeof(Header);
+ header.objects_size = 4;
+ header.objects_offset = static_cast<u32>(sizeof(Header) + header.data_size);
+ std::memcpy(buffer.data(), &header, sizeof(Header));
+
+ return buffer;
+ }
+
+private:
+ struct Header {
+ u32 data_size;
+ u32 data_offset;
+ u32 objects_size;
+ u32 objects_offset;
+ };
+ static_assert(sizeof(Header) == 16, "ParcelHeader has wrong size");
+
+ mutable std::vector<u8> buffer;
+ std::size_t read_index = 0;
+ std::size_t write_index = sizeof(Header);
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/pixel_format.h b/src/core/hle/service/nvflinger/pixel_format.h
new file mode 100644
index 000000000..8a77d8bea
--- /dev/null
+++ b/src/core/hle/service/nvflinger/pixel_format.h
@@ -0,0 +1,21 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+
+#pragma once
+
+#include "common/common_types.h"
+
+namespace Service::android {
+
+enum class PixelFormat : u32 {
+ NoFormat = 0,
+ Rgba8888 = 1,
+ Rgbx8888 = 2,
+ Rgb888 = 3,
+ Rgb565 = 4,
+ Bgra8888 = 5,
+ Rgba5551 = 6,
+ Rgba4444 = 7,
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/producer_listener.h b/src/core/hle/service/nvflinger/producer_listener.h
new file mode 100644
index 000000000..468e06431
--- /dev/null
+++ b/src/core/hle/service/nvflinger/producer_listener.h
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2014 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/gui/IProducerListener.h
+
+#pragma once
+
+namespace Service::android {
+
+class IProducerListener {
+public:
+ virtual void OnBufferReleased() = 0;
+};
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/status.h b/src/core/hle/service/nvflinger/status.h
new file mode 100644
index 000000000..a003eda89
--- /dev/null
+++ b/src/core/hle/service/nvflinger/status.h
@@ -0,0 +1,28 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+
+#pragma once
+
+#include "common/common_funcs.h"
+#include "common/common_types.h"
+
+namespace Service::android {
+
+enum class Status : s32 {
+ None = 0,
+ NoError = 0,
+ StaleBufferSlot = 1,
+ NoBufferAvailable = 2,
+ PresentLater = 3,
+ WouldBlock = -11,
+ NoMemory = -12,
+ Busy = -16,
+ NoInit = -19,
+ BadValue = -22,
+ InvalidOperation = -37,
+ BufferNeedsReallocation = 1,
+ ReleaseAllBuffers = 2,
+};
+DECLARE_ENUM_FLAG_OPERATORS(Status);
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/ui/fence.h b/src/core/hle/service/nvflinger/ui/fence.h
new file mode 100644
index 000000000..4a74e26a3
--- /dev/null
+++ b/src/core/hle/service/nvflinger/ui/fence.h
@@ -0,0 +1,32 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2012 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/ui/Fence.h
+
+#pragma once
+
+#include <array>
+
+#include "common/common_types.h"
+#include "core/hle/service/nvdrv/nvdata.h"
+
+namespace Service::android {
+
+class Fence {
+public:
+ constexpr Fence() = default;
+
+ static constexpr Fence NoFence() {
+ Fence fence;
+ fence.fences[0].id = -1;
+ return fence;
+ }
+
+public:
+ u32 num_fences{};
+ std::array<Service::Nvidia::NvFence, 4> fences{};
+};
+static_assert(sizeof(Fence) == 36, "Fence has wrong size");
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/ui/graphic_buffer.h b/src/core/hle/service/nvflinger/ui/graphic_buffer.h
new file mode 100644
index 000000000..7abbf78ba
--- /dev/null
+++ b/src/core/hle/service/nvflinger/ui/graphic_buffer.h
@@ -0,0 +1,100 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+// Copyright 2007 The Android Open Source Project
+// Parts of this implementation were base on:
+// https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/include/ui/GraphicBuffer.h
+
+#pragma once
+
+#include "common/common_funcs.h"
+#include "common/common_types.h"
+#include "core/hle/service/nvflinger/pixel_format.h"
+
+namespace Service::android {
+
+class GraphicBuffer final {
+public:
+ constexpr GraphicBuffer() = default;
+
+ constexpr GraphicBuffer(u32 width_, u32 height_, PixelFormat format_, u32 usage_)
+ : width{static_cast<s32>(width_)}, height{static_cast<s32>(height_)}, format{format_},
+ usage{static_cast<s32>(usage_)} {}
+
+ constexpr u32 Width() const {
+ return static_cast<u32>(width);
+ }
+
+ constexpr u32 Height() const {
+ return static_cast<u32>(height);
+ }
+
+ constexpr u32 Stride() const {
+ return static_cast<u32>(stride);
+ }
+
+ constexpr u32 Usage() const {
+ return static_cast<u32>(usage);
+ }
+
+ constexpr PixelFormat Format() const {
+ return format;
+ }
+
+ constexpr u32 BufferId() const {
+ return buffer_id;
+ }
+
+ constexpr PixelFormat ExternalFormat() const {
+ return external_format;
+ }
+
+ constexpr u32 Handle() const {
+ return handle;
+ }
+
+ constexpr u32 Offset() const {
+ return offset;
+ }
+
+ constexpr bool NeedsReallocation(u32 width_, u32 height_, PixelFormat format_,
+ u32 usage_) const {
+ if (static_cast<s32>(width_) != width) {
+ return true;
+ }
+
+ if (static_cast<s32>(height_) != height) {
+ return true;
+ }
+
+ if (format_ != format) {
+ return true;
+ }
+
+ if ((static_cast<u32>(usage) & usage_) != usage_) {
+ return true;
+ }
+
+ return false;
+ }
+
+private:
+ u32 magic{};
+ s32 width{};
+ s32 height{};
+ s32 stride{};
+ PixelFormat format{};
+ s32 usage{};
+ INSERT_PADDING_WORDS(1);
+ u32 index{};
+ INSERT_PADDING_WORDS(3);
+ u32 buffer_id{};
+ INSERT_PADDING_WORDS(6);
+ PixelFormat external_format{};
+ INSERT_PADDING_WORDS(10);
+ u32 handle{};
+ u32 offset{};
+ INSERT_PADDING_WORDS(60);
+};
+static_assert(sizeof(GraphicBuffer) == 0x16C, "GraphicBuffer has wrong size");
+
+} // namespace Service::android
diff --git a/src/core/hle/service/nvflinger/window.h b/src/core/hle/service/nvflinger/window.h
new file mode 100644
index 000000000..e26f8160e
--- /dev/null
+++ b/src/core/hle/service/nvflinger/window.h
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright 2021 yuzu Emulator Project
+
+#pragma once
+
+#include "common/common_funcs.h"
+#include "common/common_types.h"
+
+namespace Service::android {
+
+/// Attributes queryable with Query
+enum class NativeWindow : s32 {
+ Width = 0,
+ Height = 1,
+ Format = 2,
+ MinUndequeedBuffers = 3,
+ QueuesToWindowComposer = 4,
+ ConcreteType = 5,
+ DefaultWidth = 6,
+ DefaultHeight = 7,
+ TransformHint = 8,
+ ConsumerRunningBehind = 9,
+ ConsumerUsageBits = 10,
+ StickyTransform = 11,
+ DefaultDataSpace = 12,
+ BufferAge = 13,
+};
+
+/// Parameter for Connect/Disconnect
+enum class NativeWindowApi : s32 {
+ NoConnectedApi = 0,
+ Egl = 1,
+ Cpu = 2,
+ Media = 3,
+ Camera = 4,
+};
+
+/// Scaling mode parameter for QueueBuffer
+enum class NativeWindowScalingMode : s32 {
+ Freeze = 0,
+ ScaleToWindow = 1,
+ ScaleCrop = 2,
+ NoScaleCrop = 3,
+};
+
+/// Transform parameter for QueueBuffer
+enum class NativeWindowTransform : u32 {
+ None = 0x0,
+ InverseDisplay = 0x08,
+};
+DECLARE_ENUM_FLAG_OPERATORS(NativeWindowTransform);
+
+} // namespace Service::android
diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp
index eb1138313..0f59a03c5 100644
--- a/src/core/hle/service/service.cpp
+++ b/src/core/hle/service/service.cpp
@@ -32,6 +32,7 @@
#include "core/hle/service/glue/glue.h"
#include "core/hle/service/grc/grc.h"
#include "core/hle/service/hid/hid.h"
+#include "core/hle/service/jit/jit.h"
#include "core/hle/service/lbl/lbl.h"
#include "core/hle/service/ldn/ldn.h"
#include "core/hle/service/ldr/ldr.h"
@@ -49,6 +50,7 @@
#include "core/hle/service/npns/npns.h"
#include "core/hle/service/ns/ns.h"
#include "core/hle/service/nvdrv/nvdrv.h"
+#include "core/hle/service/nvflinger/hos_binder_driver_server.h"
#include "core/hle/service/nvflinger/nvflinger.h"
#include "core/hle/service/olsc/olsc.h"
#include "core/hle/service/pcie/pcie.h"
@@ -90,8 +92,9 @@ namespace Service {
}
ServiceFrameworkBase::ServiceFrameworkBase(Core::System& system_, const char* service_name_,
- u32 max_sessions_, InvokerFn* handler_invoker_)
- : SessionRequestHandler(system_.Kernel(), service_name_), system{system_},
+ ServiceThreadType thread_type, u32 max_sessions_,
+ InvokerFn* handler_invoker_)
+ : SessionRequestHandler(system_.Kernel(), service_name_, thread_type), system{system_},
service_name{service_name_}, max_sessions{max_sessions_}, handler_invoker{handler_invoker_} {}
ServiceFrameworkBase::~ServiceFrameworkBase() {
@@ -230,7 +233,8 @@ ResultCode ServiceFrameworkBase::HandleSyncRequest(Kernel::KServerSession& sessi
/// Initialize Services
Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system)
- : nv_flinger{std::make_unique<NVFlinger::NVFlinger>(system)} {
+ : hos_binder_driver_server{std::make_unique<NVFlinger::HosBinderDriverServer>(system)},
+ nv_flinger{std::make_unique<NVFlinger::NVFlinger>(system, *hos_binder_driver_server)} {
// NVFlinger needs to be accessed by several services like Vi and AppletOE so we instantiate it
// here and pass it into the respective InstallInterfaces functions.
@@ -259,6 +263,7 @@ Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system
Glue::InstallInterfaces(system);
GRC::InstallInterfaces(*sm, system);
HID::InstallInterfaces(*sm, system);
+ JIT::InstallInterfaces(*sm, system);
LBL::InstallInterfaces(*sm, system);
LDN::InstallInterfaces(*sm, system);
LDR::InstallInterfaces(*sm, system);
@@ -290,7 +295,7 @@ Services::Services(std::shared_ptr<SM::ServiceManager>& sm, Core::System& system
SSL::InstallInterfaces(*sm, system);
Time::InstallInterfaces(system);
USB::InstallInterfaces(*sm, system);
- VI::InstallInterfaces(*sm, system, *nv_flinger);
+ VI::InstallInterfaces(*sm, system, *nv_flinger, *hos_binder_driver_server);
WLAN::InstallInterfaces(*sm, system);
}
diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h
index c9d6b879d..c78b2baeb 100644
--- a/src/core/hle/service/service.h
+++ b/src/core/hle/service/service.h
@@ -33,8 +33,9 @@ class FileSystemController;
}
namespace NVFlinger {
+class HosBinderDriverServer;
class NVFlinger;
-}
+} // namespace NVFlinger
namespace SM {
class ServiceManager;
@@ -113,7 +114,8 @@ private:
Kernel::HLERequestContext& ctx);
explicit ServiceFrameworkBase(Core::System& system_, const char* service_name_,
- u32 max_sessions_, InvokerFn* handler_invoker_);
+ ServiceThreadType thread_type, u32 max_sessions_,
+ InvokerFn* handler_invoker_);
~ServiceFrameworkBase() override;
void RegisterHandlersBase(const FunctionInfoBase* functions, std::size_t n);
@@ -175,14 +177,17 @@ protected:
/**
* Initializes the handler with no functions installed.
*
- * @param system_ The system context to construct this service under.
+ * @param system_ The system context to construct this service under.
* @param service_name_ Name of the service.
- * @param max_sessions_ Maximum number of sessions that can be
- * connected to this service at the same time.
+ * @param thread_type Specifies the thread type for this service. If this is set to CreateNew,
+ * it creates a new thread for it, otherwise this uses the default thread.
+ * @param max_sessions_ Maximum number of sessions that can be connected to this service at the
+ * same time.
*/
explicit ServiceFramework(Core::System& system_, const char* service_name_,
+ ServiceThreadType thread_type = ServiceThreadType::Default,
u32 max_sessions_ = ServerSessionCountMax)
- : ServiceFrameworkBase(system_, service_name_, max_sessions_, Invoker) {}
+ : ServiceFrameworkBase(system_, service_name_, thread_type, max_sessions_, Invoker) {}
/// Registers handlers in the service.
template <std::size_t N>
@@ -236,6 +241,7 @@ public:
~Services();
private:
+ std::unique_ptr<NVFlinger::HosBinderDriverServer> hos_binder_driver_server;
std::unique_ptr<NVFlinger::NVFlinger> nv_flinger;
};
diff --git a/src/core/hle/service/sm/sm.cpp b/src/core/hle/service/sm/sm.cpp
index eaa172595..13f5e08ec 100644
--- a/src/core/hle/service/sm/sm.cpp
+++ b/src/core/hle/service/sm/sm.cpp
@@ -81,6 +81,8 @@ ResultVal<Kernel::KPort*> ServiceManager::GetServicePort(const std::string& name
}
auto* port = Kernel::KPort::Create(kernel);
+ SCOPE_EXIT({ port->Close(); });
+
port->Initialize(ServerSessionCountMax, false, name);
auto handler = it->second;
port->GetServerPort().SetSessionHandler(std::move(handler));
@@ -151,7 +153,7 @@ ResultVal<Kernel::KClientSession*> SM::GetServiceImpl(Kernel::HLERequestContext&
auto& port = port_result.Unwrap();
SCOPE_EXIT({ port->GetClientPort().Close(); });
- server_ports.emplace_back(&port->GetServerPort());
+ kernel.RegisterServerObject(&port->GetServerPort());
// Create a new session.
Kernel::KClientSession* session{};
@@ -204,7 +206,7 @@ void SM::UnregisterService(Kernel::HLERequestContext& ctx) {
}
SM::SM(ServiceManager& service_manager_, Core::System& system_)
- : ServiceFramework{system_, "sm:", 4},
+ : ServiceFramework{system_, "sm:", ServiceThreadType::Default, 4},
service_manager{service_manager_}, kernel{system_.Kernel()} {
RegisterHandlers({
{0, &SM::Initialize, "Initialize"},
@@ -222,10 +224,6 @@ SM::SM(ServiceManager& service_manager_, Core::System& system_)
});
}
-SM::~SM() {
- for (auto& server_port : server_ports) {
- server_port->Close();
- }
-}
+SM::~SM() = default;
} // namespace Service::SM
diff --git a/src/core/hle/service/sm/sm.h b/src/core/hle/service/sm/sm.h
index 021eb51b4..f3ff7b27e 100644
--- a/src/core/hle/service/sm/sm.h
+++ b/src/core/hle/service/sm/sm.h
@@ -22,7 +22,6 @@ class KClientPort;
class KClientSession;
class KernelCore;
class KPort;
-class KServerPort;
class SessionRequestHandler;
} // namespace Kernel
@@ -48,7 +47,6 @@ private:
ServiceManager& service_manager;
bool is_initialized{};
Kernel::KernelCore& kernel;
- std::vector<Kernel::KServerPort*> server_ports;
};
class ServiceManager {
diff --git a/src/core/hle/service/sockets/bsd.cpp b/src/core/hle/service/sockets/bsd.cpp
index f83272633..d25b050e2 100644
--- a/src/core/hle/service/sockets/bsd.cpp
+++ b/src/core/hle/service/sockets/bsd.cpp
@@ -10,7 +10,6 @@
#include <fmt/format.h>
#include "common/microprofile.h"
-#include "common/thread.h"
#include "core/hle/ipc_helpers.h"
#include "core/hle/kernel/k_thread.h"
#include "core/hle/service/sockets/bsd.h"
@@ -569,9 +568,9 @@ std::pair<s32, Errno> BSD::AcceptImpl(s32 fd, std::vector<u8>& write_buffer) {
new_descriptor.socket = std::move(result.socket);
new_descriptor.is_connection_based = descriptor.is_connection_based;
- ASSERT(write_buffer.size() == sizeof(SockAddrIn));
const SockAddrIn guest_addr_in = Translate(result.sockaddr_in);
- std::memcpy(write_buffer.data(), &guest_addr_in, sizeof(guest_addr_in));
+ const size_t length = std::min(sizeof(guest_addr_in), write_buffer.size());
+ std::memcpy(write_buffer.data(), &guest_addr_in, length);
return {new_fd, Errno::SUCCESS};
}
@@ -690,6 +689,9 @@ Errno BSD::SetSockOptImpl(s32 fd, u32 level, OptName optname, size_t optlen, con
case OptName::REUSEADDR:
ASSERT(value == 0 || value == 1);
return Translate(socket->SetReuseAddr(value != 0));
+ case OptName::KEEPALIVE:
+ ASSERT(value == 0 || value == 1);
+ return Translate(socket->SetKeepAlive(value != 0));
case OptName::BROADCAST:
ASSERT(value == 0 || value == 1);
return Translate(socket->SetBroadcast(value != 0));
@@ -838,7 +840,8 @@ void BSD::BuildErrnoResponse(Kernel::HLERequestContext& ctx, Errno bsd_errno) co
rb.PushEnum(bsd_errno);
}
-BSD::BSD(Core::System& system_, const char* name) : ServiceFramework{system_, name} {
+BSD::BSD(Core::System& system_, const char* name)
+ : ServiceFramework{system_, name, ServiceThreadType::CreateNew} {
// clang-format off
static const FunctionInfo functions[] = {
{0, &BSD::RegisterClient, "RegisterClient"},
diff --git a/src/core/hle/service/sockets/sfdnsres.cpp b/src/core/hle/service/sockets/sfdnsres.cpp
index fb6142c49..a193fb578 100644
--- a/src/core/hle/service/sockets/sfdnsres.cpp
+++ b/src/core/hle/service/sockets/sfdnsres.cpp
@@ -2,8 +2,28 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <string_view>
+#include <utility>
+#include <vector>
+
+#include "common/string_util.h"
+#include "common/swap.h"
+#include "core/core.h"
#include "core/hle/ipc_helpers.h"
#include "core/hle/service/sockets/sfdnsres.h"
+#include "core/memory.h"
+
+#ifdef _WIN32
+#include <ws2tcpip.h>
+#elif YUZU_UNIX
+#include <arpa/inet.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <sys/socket.h>
+#ifndef EAI_NODATA
+#define EAI_NODATA EAI_NONAME
+#endif
+#endif
namespace Service::Sockets {
@@ -21,7 +41,7 @@ SFDNSRES::SFDNSRES(Core::System& system_) : ServiceFramework{system_, "sfdnsres"
{9, nullptr, "CancelRequest"},
{10, nullptr, "GetHostByNameRequestWithOptions"},
{11, nullptr, "GetHostByAddrRequestWithOptions"},
- {12, nullptr, "GetAddrInfoRequestWithOptions"},
+ {12, &SFDNSRES::GetAddrInfoRequestWithOptions, "GetAddrInfoRequestWithOptions"},
{13, nullptr, "GetNameInfoRequestWithOptions"},
{14, nullptr, "ResolverSetOptionRequest"},
{15, nullptr, "ResolverGetOptionRequest"},
@@ -31,7 +51,142 @@ SFDNSRES::SFDNSRES(Core::System& system_) : ServiceFramework{system_, "sfdnsres"
SFDNSRES::~SFDNSRES() = default;
-void SFDNSRES::GetAddrInfoRequest(Kernel::HLERequestContext& ctx) {
+enum class NetDbError : s32 {
+ Internal = -1,
+ Success = 0,
+ HostNotFound = 1,
+ TryAgain = 2,
+ NoRecovery = 3,
+ NoData = 4,
+};
+
+static NetDbError AddrInfoErrorToNetDbError(s32 result) {
+ // Best effort guess to map errors
+ switch (result) {
+ case 0:
+ return NetDbError::Success;
+ case EAI_AGAIN:
+ return NetDbError::TryAgain;
+ case EAI_NODATA:
+ return NetDbError::NoData;
+ default:
+ return NetDbError::HostNotFound;
+ }
+}
+
+static std::vector<u8> SerializeAddrInfo(const addrinfo* addrinfo, s32 result_code,
+ std::string_view host) {
+ // Adapted from
+ // https://github.com/switchbrew/libnx/blob/c5a9a909a91657a9818a3b7e18c9b91ff0cbb6e3/nx/source/runtime/resolver.c#L190
+ std::vector<u8> data;
+
+ auto* current = addrinfo;
+ while (current != nullptr) {
+ struct SerializedResponseHeader {
+ u32 magic;
+ s32 flags;
+ s32 family;
+ s32 socket_type;
+ s32 protocol;
+ u32 address_length;
+ };
+ static_assert(sizeof(SerializedResponseHeader) == 0x18,
+ "Response header size must be 0x18 bytes");
+
+ constexpr auto header_size = sizeof(SerializedResponseHeader);
+ const auto addr_size =
+ current->ai_addr && current->ai_addrlen > 0 ? current->ai_addrlen : 4;
+ const auto canonname_size = current->ai_canonname ? strlen(current->ai_canonname) + 1 : 1;
+
+ const auto last_size = data.size();
+ data.resize(last_size + header_size + addr_size + canonname_size);
+
+ // Header in network byte order
+ SerializedResponseHeader header{};
+
+ constexpr auto HEADER_MAGIC = 0xBEEFCAFE;
+ header.magic = htonl(HEADER_MAGIC);
+ header.family = htonl(current->ai_family);
+ header.flags = htonl(current->ai_flags);
+ header.socket_type = htonl(current->ai_socktype);
+ header.protocol = htonl(current->ai_protocol);
+ header.address_length = current->ai_addr ? htonl((u32)current->ai_addrlen) : 0;
+
+ auto* header_ptr = data.data() + last_size;
+ std::memcpy(header_ptr, &header, header_size);
+
+ if (header.address_length == 0) {
+ std::memset(header_ptr + header_size, 0, 4);
+ } else {
+ switch (current->ai_family) {
+ case AF_INET: {
+ struct SockAddrIn {
+ s16 sin_family;
+ u16 sin_port;
+ u32 sin_addr;
+ u8 sin_zero[8];
+ };
+
+ SockAddrIn serialized_addr{};
+ const auto addr = *reinterpret_cast<sockaddr_in*>(current->ai_addr);
+ serialized_addr.sin_port = htons(addr.sin_port);
+ serialized_addr.sin_family = htons(addr.sin_family);
+ serialized_addr.sin_addr = htonl(addr.sin_addr.s_addr);
+ std::memcpy(header_ptr + header_size, &serialized_addr, sizeof(SockAddrIn));
+
+ char addr_string_buf[64]{};
+ inet_ntop(AF_INET, &addr.sin_addr, addr_string_buf, std::size(addr_string_buf));
+ LOG_INFO(Service, "Resolved host '{}' to IPv4 address {}", host, addr_string_buf);
+ break;
+ }
+ case AF_INET6: {
+ struct SockAddrIn6 {
+ s16 sin6_family;
+ u16 sin6_port;
+ u32 sin6_flowinfo;
+ u8 sin6_addr[16];
+ u32 sin6_scope_id;
+ };
+
+ SockAddrIn6 serialized_addr{};
+ const auto addr = *reinterpret_cast<sockaddr_in6*>(current->ai_addr);
+ serialized_addr.sin6_family = htons(addr.sin6_family);
+ serialized_addr.sin6_port = htons(addr.sin6_port);
+ serialized_addr.sin6_flowinfo = htonl(addr.sin6_flowinfo);
+ serialized_addr.sin6_scope_id = htonl(addr.sin6_scope_id);
+ std::memcpy(serialized_addr.sin6_addr, &addr.sin6_addr,
+ sizeof(SockAddrIn6::sin6_addr));
+ std::memcpy(header_ptr + header_size, &serialized_addr, sizeof(SockAddrIn6));
+
+ char addr_string_buf[64]{};
+ inet_ntop(AF_INET6, &addr.sin6_addr, addr_string_buf, std::size(addr_string_buf));
+ LOG_INFO(Service, "Resolved host '{}' to IPv6 address {}", host, addr_string_buf);
+ break;
+ }
+ default:
+ std::memcpy(header_ptr + header_size, current->ai_addr, addr_size);
+ break;
+ }
+ }
+ if (current->ai_canonname) {
+ std::memcpy(header_ptr + addr_size, current->ai_canonname, canonname_size);
+ } else {
+ *(header_ptr + header_size + addr_size) = 0;
+ }
+
+ current = current->ai_next;
+ }
+
+ // 4-byte sentinel value
+ data.push_back(0);
+ data.push_back(0);
+ data.push_back(0);
+ data.push_back(0);
+
+ return data;
+}
+
+static std::pair<u32, s32> GetAddrInfoRequestImpl(Kernel::HLERequestContext& ctx) {
struct Parameters {
u8 use_nsd_resolve;
u32 unknown;
@@ -42,11 +197,51 @@ void SFDNSRES::GetAddrInfoRequest(Kernel::HLERequestContext& ctx) {
const auto parameters = rp.PopRaw<Parameters>();
LOG_WARNING(Service,
- "(STUBBED) called. use_nsd_resolve={}, unknown=0x{:08X}, process_id=0x{:016X}",
+ "called with ignored parameters: use_nsd_resolve={}, unknown={}, process_id={}",
parameters.use_nsd_resolve, parameters.unknown, parameters.process_id);
- IPC::ResponseBuilder rb{ctx, 2};
+ const auto host_buffer = ctx.ReadBuffer(0);
+ const std::string host = Common::StringFromBuffer(host_buffer);
+
+ const auto service_buffer = ctx.ReadBuffer(1);
+ const std::string service = Common::StringFromBuffer(service_buffer);
+
+ addrinfo* addrinfo;
+ // Pass null for hints. Serialized hints are also passed in a buffer, but are ignored for now
+ s32 result_code = getaddrinfo(host.c_str(), service.c_str(), nullptr, &addrinfo);
+
+ u32 data_size = 0;
+ if (result_code == 0 && addrinfo != nullptr) {
+ const std::vector<u8>& data = SerializeAddrInfo(addrinfo, result_code, host);
+ data_size = static_cast<u32>(data.size());
+ freeaddrinfo(addrinfo);
+
+ ctx.WriteBuffer(data, 0);
+ }
+
+ return std::make_pair(data_size, result_code);
+}
+
+void SFDNSRES::GetAddrInfoRequest(Kernel::HLERequestContext& ctx) {
+ auto [data_size, result_code] = GetAddrInfoRequestImpl(ctx);
+
+ IPC::ResponseBuilder rb{ctx, 4};
+ rb.Push(ResultSuccess);
+ rb.Push(static_cast<s32>(AddrInfoErrorToNetDbError(result_code))); // NetDBErrorCode
+ rb.Push(result_code); // errno
+ rb.Push(data_size); // serialized size
+}
+
+void SFDNSRES::GetAddrInfoRequestWithOptions(Kernel::HLERequestContext& ctx) {
+ // Additional options are ignored
+ auto [data_size, result_code] = GetAddrInfoRequestImpl(ctx);
+
+ IPC::ResponseBuilder rb{ctx, 5};
rb.Push(ResultSuccess);
+ rb.Push(data_size); // serialized size
+ rb.Push(result_code); // errno
+ rb.Push(static_cast<s32>(AddrInfoErrorToNetDbError(result_code))); // NetDBErrorCode
+ rb.Push(0);
}
-} // namespace Service::Sockets
+} // namespace Service::Sockets \ No newline at end of file
diff --git a/src/core/hle/service/sockets/sfdnsres.h b/src/core/hle/service/sockets/sfdnsres.h
index 5d3b4dc2d..f0c57377d 100644
--- a/src/core/hle/service/sockets/sfdnsres.h
+++ b/src/core/hle/service/sockets/sfdnsres.h
@@ -19,6 +19,7 @@ public:
private:
void GetAddrInfoRequest(Kernel::HLERequestContext& ctx);
+ void GetAddrInfoRequestWithOptions(Kernel::HLERequestContext& ctx);
};
} // namespace Service::Sockets
diff --git a/src/core/hle/service/sockets/sockets.h b/src/core/hle/service/sockets/sockets.h
index 02dbbae40..d69c86431 100644
--- a/src/core/hle/service/sockets/sockets.h
+++ b/src/core/hle/service/sockets/sockets.h
@@ -46,6 +46,7 @@ enum class Protocol : u32 {
enum class OptName : u32 {
REUSEADDR = 0x4,
+ KEEPALIVE = 0x8,
BROADCAST = 0x20,
LINGER = 0x80,
SNDBUF = 0x1001,
diff --git a/src/core/hle/service/vi/display/vi_display.cpp b/src/core/hle/service/vi/display/vi_display.cpp
index b7705c02a..558022511 100644
--- a/src/core/hle/service/vi/display/vi_display.cpp
+++ b/src/core/hle/service/vi/display/vi_display.cpp
@@ -13,14 +13,34 @@
#include "core/hle/kernel/k_readable_event.h"
#include "core/hle/kernel/k_writable_event.h"
#include "core/hle/service/kernel_helpers.h"
+#include "core/hle/service/nvflinger/buffer_item_consumer.h"
+#include "core/hle/service/nvflinger/buffer_queue_consumer.h"
+#include "core/hle/service/nvflinger/buffer_queue_core.h"
+#include "core/hle/service/nvflinger/buffer_queue_producer.h"
+#include "core/hle/service/nvflinger/hos_binder_driver_server.h"
#include "core/hle/service/vi/display/vi_display.h"
#include "core/hle/service/vi/layer/vi_layer.h"
namespace Service::VI {
-Display::Display(u64 id, std::string name_, KernelHelpers::ServiceContext& service_context_,
- Core::System& system_)
- : display_id{id}, name{std::move(name_)}, service_context{service_context_} {
+struct BufferQueue {
+ std::shared_ptr<android::BufferQueueCore> core;
+ std::unique_ptr<android::BufferQueueProducer> producer;
+ std::unique_ptr<android::BufferQueueConsumer> consumer;
+};
+
+static BufferQueue CreateBufferQueue(KernelHelpers::ServiceContext& service_context) {
+ auto buffer_queue_core = std::make_shared<android::BufferQueueCore>();
+ return {buffer_queue_core,
+ std::make_unique<android::BufferQueueProducer>(service_context, buffer_queue_core),
+ std::make_unique<android::BufferQueueConsumer>(buffer_queue_core)};
+}
+
+Display::Display(u64 id, std::string name_,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server_,
+ KernelHelpers::ServiceContext& service_context_, Core::System& system_)
+ : display_id{id}, name{std::move(name_)}, hos_binder_driver_server{hos_binder_driver_server_},
+ service_context{service_context_} {
vsync_event = service_context.CreateEvent(fmt::format("Display VSync Event {}", id));
}
@@ -44,21 +64,29 @@ void Display::SignalVSyncEvent() {
vsync_event->GetWritableEvent().Signal();
}
-void Display::CreateLayer(u64 layer_id, NVFlinger::BufferQueue& buffer_queue) {
- // TODO(Subv): Support more than 1 layer.
+void Display::CreateLayer(u64 layer_id, u32 binder_id) {
ASSERT_MSG(layers.empty(), "Only one layer is supported per display at the moment");
- layers.emplace_back(std::make_shared<Layer>(layer_id, buffer_queue));
+ auto [core, producer, consumer] = CreateBufferQueue(service_context);
+
+ auto buffer_item_consumer = std::make_shared<android::BufferItemConsumer>(std::move(consumer));
+ buffer_item_consumer->Connect(false);
+
+ layers.emplace_back(std::make_unique<Layer>(layer_id, binder_id, *core, *producer,
+ std::move(buffer_item_consumer)));
+
+ hos_binder_driver_server.RegisterProducer(std::move(producer));
}
void Display::CloseLayer(u64 layer_id) {
- std::erase_if(layers, [layer_id](const auto& layer) { return layer->GetID() == layer_id; });
+ std::erase_if(layers,
+ [layer_id](const auto& layer) { return layer->GetLayerId() == layer_id; });
}
Layer* Display::FindLayer(u64 layer_id) {
const auto itr =
- std::find_if(layers.begin(), layers.end(), [layer_id](const std::shared_ptr<Layer>& layer) {
- return layer->GetID() == layer_id;
+ std::find_if(layers.begin(), layers.end(), [layer_id](const std::unique_ptr<Layer>& layer) {
+ return layer->GetLayerId() == layer_id;
});
if (itr == layers.end()) {
@@ -70,8 +98,8 @@ Layer* Display::FindLayer(u64 layer_id) {
const Layer* Display::FindLayer(u64 layer_id) const {
const auto itr =
- std::find_if(layers.begin(), layers.end(), [layer_id](const std::shared_ptr<Layer>& layer) {
- return layer->GetID() == layer_id;
+ std::find_if(layers.begin(), layers.end(), [layer_id](const std::unique_ptr<Layer>& layer) {
+ return layer->GetLayerId() == layer_id;
});
if (itr == layers.end()) {
diff --git a/src/core/hle/service/vi/display/vi_display.h b/src/core/hle/service/vi/display/vi_display.h
index 329f4ba86..e93d084ee 100644
--- a/src/core/hle/service/vi/display/vi_display.h
+++ b/src/core/hle/service/vi/display/vi_display.h
@@ -15,12 +15,17 @@ namespace Kernel {
class KEvent;
}
-namespace Service::NVFlinger {
-class BufferQueue;
+namespace Service::android {
+class BufferQueueProducer;
}
+
namespace Service::KernelHelpers {
class ServiceContext;
-} // namespace Service::KernelHelpers
+}
+
+namespace Service::NVFlinger {
+class HosBinderDriverServer;
+}
namespace Service::VI {
@@ -35,12 +40,13 @@ public:
/// Constructs a display with a given unique ID and name.
///
/// @param id The unique ID for this display.
+ /// @param hos_binder_driver_server_ NVFlinger HOSBinderDriver server instance.
/// @param service_context_ The ServiceContext for the owning service.
/// @param name_ The name for this display.
/// @param system_ The global system instance.
///
- Display(u64 id, std::string name_, KernelHelpers::ServiceContext& service_context_,
- Core::System& system_);
+ Display(u64 id, std::string name_, NVFlinger::HosBinderDriverServer& hos_binder_driver_server_,
+ KernelHelpers::ServiceContext& service_context_, Core::System& system_);
~Display();
/// Gets the unique ID assigned to this display.
@@ -64,6 +70,10 @@ public:
/// Gets a layer for this display based off an index.
const Layer& GetLayer(std::size_t index) const;
+ std::size_t GetNumLayers() const {
+ return layers.size();
+ }
+
/// Gets the readable vsync event.
Kernel::KReadableEvent& GetVSyncEvent();
@@ -72,10 +82,10 @@ public:
/// Creates and adds a layer to this display with the given ID.
///
- /// @param layer_id The ID to assign to the created layer.
- /// @param buffer_queue The buffer queue for the layer instance to use.
+ /// @param layer_id The ID to assign to the created layer.
+ /// @param binder_id The ID assigned to the buffer queue.
///
- void CreateLayer(u64 layer_id, NVFlinger::BufferQueue& buffer_queue);
+ void CreateLayer(u64 layer_id, u32 binder_id);
/// Closes and removes a layer from this display with the given ID.
///
@@ -104,9 +114,10 @@ public:
private:
u64 display_id;
std::string name;
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server;
KernelHelpers::ServiceContext& service_context;
- std::vector<std::shared_ptr<Layer>> layers;
+ std::vector<std::unique_ptr<Layer>> layers;
Kernel::KEvent* vsync_event{};
};
diff --git a/src/core/hle/service/vi/layer/vi_layer.cpp b/src/core/hle/service/vi/layer/vi_layer.cpp
index 9bc382587..93858e91f 100644
--- a/src/core/hle/service/vi/layer/vi_layer.cpp
+++ b/src/core/hle/service/vi/layer/vi_layer.cpp
@@ -6,7 +6,11 @@
namespace Service::VI {
-Layer::Layer(u64 id, NVFlinger::BufferQueue& queue) : layer_id{id}, buffer_queue{queue} {}
+Layer::Layer(u64 layer_id_, u32 binder_id_, android::BufferQueueCore& core_,
+ android::BufferQueueProducer& binder_,
+ std::shared_ptr<android::BufferItemConsumer>&& consumer_)
+ : layer_id{layer_id_}, binder_id{binder_id_}, core{core_}, binder{binder_}, consumer{std::move(
+ consumer_)} {}
Layer::~Layer() = default;
diff --git a/src/core/hle/service/vi/layer/vi_layer.h b/src/core/hle/service/vi/layer/vi_layer.h
index ebdd85505..c28b14450 100644
--- a/src/core/hle/service/vi/layer/vi_layer.h
+++ b/src/core/hle/service/vi/layer/vi_layer.h
@@ -4,11 +4,15 @@
#pragma once
+#include <memory>
+
#include "common/common_types.h"
-namespace Service::NVFlinger {
-class BufferQueue;
-}
+namespace Service::android {
+class BufferItemConsumer;
+class BufferQueueCore;
+class BufferQueueProducer;
+} // namespace Service::android
namespace Service::VI {
@@ -17,10 +21,13 @@ class Layer {
public:
/// Constructs a layer with a given ID and buffer queue.
///
- /// @param id The ID to assign to this layer.
- /// @param queue The buffer queue for this layer to use.
+ /// @param layer_id_ The ID to assign to this layer.
+ /// @param binder_id_ The binder ID to assign to this layer.
+ /// @param binder_ The buffer producer queue for this layer to use.
///
- Layer(u64 id, NVFlinger::BufferQueue& queue);
+ Layer(u64 layer_id_, u32 binder_id_, android::BufferQueueCore& core_,
+ android::BufferQueueProducer& binder_,
+ std::shared_ptr<android::BufferItemConsumer>&& consumer_);
~Layer();
Layer(const Layer&) = delete;
@@ -30,23 +37,47 @@ public:
Layer& operator=(Layer&&) = delete;
/// Gets the ID for this layer.
- u64 GetID() const {
+ u64 GetLayerId() const {
return layer_id;
}
+ /// Gets the binder ID for this layer.
+ u32 GetBinderId() const {
+ return binder_id;
+ }
+
/// Gets a reference to the buffer queue this layer is using.
- NVFlinger::BufferQueue& GetBufferQueue() {
- return buffer_queue;
+ android::BufferQueueProducer& GetBufferQueue() {
+ return binder;
}
/// Gets a const reference to the buffer queue this layer is using.
- const NVFlinger::BufferQueue& GetBufferQueue() const {
- return buffer_queue;
+ const android::BufferQueueProducer& GetBufferQueue() const {
+ return binder;
+ }
+
+ android::BufferItemConsumer& GetConsumer() {
+ return *consumer;
+ }
+
+ const android::BufferItemConsumer& GetConsumer() const {
+ return *consumer;
+ }
+
+ android::BufferQueueCore& Core() {
+ return core;
+ }
+
+ const android::BufferQueueCore& Core() const {
+ return core;
}
private:
- u64 layer_id;
- NVFlinger::BufferQueue& buffer_queue;
+ const u64 layer_id;
+ const u32 binder_id;
+ android::BufferQueueCore& core;
+ android::BufferQueueProducer& binder;
+ std::shared_ptr<android::BufferItemConsumer> consumer;
};
} // namespace Service::VI
diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp
index 75ee3e5e4..a3436c8ea 100644
--- a/src/core/hle/service/vi/vi.cpp
+++ b/src/core/hle/service/vi/vi.cpp
@@ -22,8 +22,11 @@
#include "core/hle/kernel/k_readable_event.h"
#include "core/hle/kernel/k_thread.h"
#include "core/hle/service/nvdrv/nvdata.h"
-#include "core/hle/service/nvflinger/buffer_queue.h"
+#include "core/hle/service/nvflinger/binder.h"
+#include "core/hle/service/nvflinger/buffer_queue_producer.h"
+#include "core/hle/service/nvflinger/hos_binder_driver_server.h"
#include "core/hle/service/nvflinger/nvflinger.h"
+#include "core/hle/service/nvflinger/parcel.h"
#include "core/hle/service/service.h"
#include "core/hle/service/vi/vi.h"
#include "core/hle/service/vi/vi_m.h"
@@ -57,447 +60,25 @@ struct DisplayInfo {
};
static_assert(sizeof(DisplayInfo) == 0x60, "DisplayInfo has wrong size");
-class Parcel {
+class NativeWindow final {
public:
- // This default size was chosen arbitrarily.
- static constexpr std::size_t DefaultBufferSize = 0x40;
- Parcel() : buffer(DefaultBufferSize) {}
- explicit Parcel(std::vector<u8> data) : buffer(std::move(data)) {}
- virtual ~Parcel() = default;
-
- template <typename T>
- T Read() {
- static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable.");
- ASSERT(read_index + sizeof(T) <= buffer.size());
-
- T val;
- std::memcpy(&val, buffer.data() + read_index, sizeof(T));
- read_index += sizeof(T);
- read_index = Common::AlignUp(read_index, 4);
- return val;
- }
-
- template <typename T>
- T ReadUnaligned() {
- static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable.");
- ASSERT(read_index + sizeof(T) <= buffer.size());
-
- T val;
- std::memcpy(&val, buffer.data() + read_index, sizeof(T));
- read_index += sizeof(T);
- return val;
- }
-
- std::vector<u8> ReadBlock(std::size_t length) {
- ASSERT(read_index + length <= buffer.size());
- const u8* const begin = buffer.data() + read_index;
- const u8* const end = begin + length;
- std::vector<u8> data(begin, end);
- read_index += length;
- read_index = Common::AlignUp(read_index, 4);
- return data;
- }
-
- std::u16string ReadInterfaceToken() {
- [[maybe_unused]] const u32 unknown = Read<u32_le>();
- const u32 length = Read<u32_le>();
-
- std::u16string token{};
-
- for (u32 ch = 0; ch < length + 1; ++ch) {
- token.push_back(ReadUnaligned<u16_le>());
- }
-
- read_index = Common::AlignUp(read_index, 4);
-
- return token;
- }
-
- template <typename T>
- void Write(const T& val) {
- static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable.");
-
- if (buffer.size() < write_index + sizeof(T)) {
- buffer.resize(buffer.size() + sizeof(T) + DefaultBufferSize);
- }
-
- std::memcpy(buffer.data() + write_index, &val, sizeof(T));
- write_index += sizeof(T);
- write_index = Common::AlignUp(write_index, 4);
- }
-
- template <typename T>
- void WriteObject(const T& val) {
- static_assert(std::is_trivially_copyable_v<T>, "T must be trivially copyable.");
-
- const u32_le size = static_cast<u32>(sizeof(val));
- Write(size);
- // TODO(Subv): Support file descriptors.
- Write<u32_le>(0); // Fd count.
- Write(val);
- }
-
- void Deserialize() {
- ASSERT(buffer.size() > sizeof(Header));
-
- Header header{};
- std::memcpy(&header, buffer.data(), sizeof(Header));
-
- read_index = header.data_offset;
- DeserializeData();
- }
-
- std::vector<u8> Serialize() {
- ASSERT(read_index == 0);
- write_index = sizeof(Header);
-
- SerializeData();
-
- Header header{};
- header.data_size = static_cast<u32_le>(write_index - sizeof(Header));
- header.data_offset = sizeof(Header);
- header.objects_size = 4;
- header.objects_offset = static_cast<u32>(sizeof(Header) + header.data_size);
- std::memcpy(buffer.data(), &header, sizeof(Header));
-
- return buffer;
- }
-
-protected:
- virtual void SerializeData() {}
-
- virtual void DeserializeData() {}
-
-private:
- struct Header {
- u32_le data_size;
- u32_le data_offset;
- u32_le objects_size;
- u32_le objects_offset;
- };
- static_assert(sizeof(Header) == 16, "ParcelHeader has wrong size");
-
- std::vector<u8> buffer;
- std::size_t read_index = 0;
- std::size_t write_index = 0;
-};
-
-class NativeWindow : public Parcel {
-public:
- explicit NativeWindow(u32 id) {
- data.id = id;
- }
- ~NativeWindow() override = default;
-
-protected:
- void SerializeData() override {
- Write(data);
- }
-
-private:
- struct Data {
- u32_le magic = 2;
- u32_le process_id = 1;
- u32_le id;
- INSERT_PADDING_WORDS(3);
- std::array<u8, 8> dispdrv = {'d', 'i', 's', 'p', 'd', 'r', 'v', '\0'};
- INSERT_PADDING_WORDS(2);
- };
- static_assert(sizeof(Data) == 0x28, "ParcelData has wrong size");
-
- Data data{};
-};
-
-class IGBPConnectRequestParcel : public Parcel {
-public:
- explicit IGBPConnectRequestParcel(std::vector<u8> buffer_) : Parcel(std::move(buffer_)) {
- Deserialize();
- }
-
- void DeserializeData() override {
- [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
- data = Read<Data>();
- }
-
- struct Data {
- u32_le unk;
- u32_le api;
- u32_le producer_controlled_by_app;
- };
-
- Data data;
-};
-
-class IGBPConnectResponseParcel : public Parcel {
-public:
- explicit IGBPConnectResponseParcel(u32 width, u32 height) {
- data.width = width;
- data.height = height;
- }
- ~IGBPConnectResponseParcel() override = default;
-
-protected:
- void SerializeData() override {
- Write(data);
- }
-
-private:
- struct Data {
- u32_le width;
- u32_le height;
- u32_le transform_hint;
- u32_le num_pending_buffers;
- u32_le status;
- };
- static_assert(sizeof(Data) == 20, "ParcelData has wrong size");
-
- Data data{};
-};
-
-/// Represents a parcel containing one int '0' as its data
-/// Used by DetachBuffer and Disconnect
-class IGBPEmptyResponseParcel : public Parcel {
-protected:
- void SerializeData() override {
- Write(data);
- }
-
-private:
- struct Data {
- u32_le unk_0{};
- };
-
- Data data{};
-};
-
-class IGBPSetPreallocatedBufferRequestParcel : public Parcel {
-public:
- explicit IGBPSetPreallocatedBufferRequestParcel(std::vector<u8> buffer_)
- : Parcel(std::move(buffer_)) {
- Deserialize();
- }
-
- void DeserializeData() override {
- [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
- data = Read<Data>();
- if (data.contains_object != 0) {
- buffer_container = Read<BufferContainer>();
- }
- }
-
- struct Data {
- u32_le slot;
- u32_le contains_object;
- };
-
- struct BufferContainer {
- u32_le graphic_buffer_length;
- INSERT_PADDING_WORDS(1);
- NVFlinger::IGBPBuffer buffer{};
- };
-
- Data data{};
- BufferContainer buffer_container{};
-};
-
-class IGBPSetPreallocatedBufferResponseParcel : public Parcel {
-protected:
- void SerializeData() override {
- // TODO(Subv): Find out what this means
- Write<u32>(0);
- }
-};
-
-class IGBPCancelBufferRequestParcel : public Parcel {
-public:
- explicit IGBPCancelBufferRequestParcel(std::vector<u8> buffer_) : Parcel(std::move(buffer_)) {
- Deserialize();
- }
-
- void DeserializeData() override {
- [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
- data = Read<Data>();
- }
-
- struct Data {
- u32_le slot;
- Service::Nvidia::MultiFence multi_fence;
- };
-
- Data data;
-};
-
-class IGBPCancelBufferResponseParcel : public Parcel {
-protected:
- void SerializeData() override {
- Write<u32>(0); // Success
- }
-};
-
-class IGBPDequeueBufferRequestParcel : public Parcel {
-public:
- explicit IGBPDequeueBufferRequestParcel(std::vector<u8> buffer_) : Parcel(std::move(buffer_)) {
- Deserialize();
- }
-
- void DeserializeData() override {
- [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
- data = Read<Data>();
- }
-
- struct Data {
- u32_le pixel_format;
- u32_le width;
- u32_le height;
- u32_le get_frame_timestamps;
- u32_le usage;
- };
-
- Data data;
-};
-
-class IGBPDequeueBufferResponseParcel : public Parcel {
-public:
- explicit IGBPDequeueBufferResponseParcel(u32 slot_, Nvidia::MultiFence& multi_fence_)
- : slot(slot_), multi_fence(multi_fence_) {}
-
-protected:
- void SerializeData() override {
- Write(slot);
- Write<u32_le>(1);
- WriteObject(multi_fence);
- Write<u32_le>(0);
- }
-
- u32_le slot;
- Service::Nvidia::MultiFence multi_fence;
-};
-
-class IGBPRequestBufferRequestParcel : public Parcel {
-public:
- explicit IGBPRequestBufferRequestParcel(std::vector<u8> buffer_) : Parcel(std::move(buffer_)) {
- Deserialize();
- }
-
- void DeserializeData() override {
- [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
- slot = Read<u32_le>();
- }
-
- u32_le slot;
-};
-
-class IGBPRequestBufferResponseParcel : public Parcel {
-public:
- explicit IGBPRequestBufferResponseParcel(NVFlinger::IGBPBuffer buffer_) : buffer(buffer_) {}
- ~IGBPRequestBufferResponseParcel() override = default;
-
-protected:
- void SerializeData() override {
- // TODO(Subv): Figure out what this value means, writing non-zero here will make libnx
- // try to read an IGBPBuffer object from the parcel.
- Write<u32_le>(1);
- WriteObject(buffer);
- Write<u32_le>(0);
- }
-
- NVFlinger::IGBPBuffer buffer;
-};
-
-class IGBPQueueBufferRequestParcel : public Parcel {
-public:
- explicit IGBPQueueBufferRequestParcel(std::vector<u8> buffer_) : Parcel(std::move(buffer_)) {
- Deserialize();
- }
-
- void DeserializeData() override {
- [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
- data = Read<Data>();
- }
-
- struct Data {
- u32_le slot;
- INSERT_PADDING_WORDS(3);
- u32_le timestamp;
- s32_le is_auto_timestamp;
- s32_le crop_top;
- s32_le crop_left;
- s32_le crop_right;
- s32_le crop_bottom;
- s32_le scaling_mode;
- NVFlinger::BufferQueue::BufferTransformFlags transform;
- u32_le sticky_transform;
- INSERT_PADDING_WORDS(1);
- u32_le swap_interval;
- Service::Nvidia::MultiFence multi_fence;
-
- Common::Rectangle<int> GetCropRect() const {
- return {crop_left, crop_top, crop_right, crop_bottom};
- }
- };
- static_assert(sizeof(Data) == 96, "ParcelData has wrong size");
-
- Data data;
-};
-
-class IGBPQueueBufferResponseParcel : public Parcel {
-public:
- explicit IGBPQueueBufferResponseParcel(u32 width, u32 height) {
- data.width = width;
- data.height = height;
- }
- ~IGBPQueueBufferResponseParcel() override = default;
-
-protected:
- void SerializeData() override {
- Write(data);
- }
-
-private:
- struct Data {
- u32_le width;
- u32_le height;
- u32_le transform_hint;
- u32_le num_pending_buffers;
- u32_le status;
- };
- static_assert(sizeof(Data) == 20, "ParcelData has wrong size");
-
- Data data{};
-};
-
-class IGBPQueryRequestParcel : public Parcel {
-public:
- explicit IGBPQueryRequestParcel(std::vector<u8> buffer_) : Parcel(std::move(buffer_)) {
- Deserialize();
- }
-
- void DeserializeData() override {
- [[maybe_unused]] const std::u16string token = ReadInterfaceToken();
- type = Read<u32_le>();
- }
-
- u32 type;
-};
-
-class IGBPQueryResponseParcel : public Parcel {
-public:
- explicit IGBPQueryResponseParcel(u32 value_) : value{value_} {}
- ~IGBPQueryResponseParcel() override = default;
-
-protected:
- void SerializeData() override {
- Write(value);
- }
+ constexpr explicit NativeWindow(u32 id_) : id{id_} {}
private:
- u32_le value;
+ const u32 magic = 2;
+ const u32 process_id = 1;
+ const u32 id;
+ INSERT_PADDING_WORDS(3);
+ std::array<u8, 8> dispdrv = {'d', 'i', 's', 'p', 'd', 'r', 'v', '\0'};
+ INSERT_PADDING_WORDS(2);
};
+static_assert(sizeof(NativeWindow) == 0x28, "NativeWindow has wrong size");
class IHOSBinderDriver final : public ServiceFramework<IHOSBinderDriver> {
public:
- explicit IHOSBinderDriver(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_)
- : ServiceFramework{system_, "IHOSBinderDriver"}, nv_flinger(nv_flinger_) {
+ explicit IHOSBinderDriver(Core::System& system_, NVFlinger::HosBinderDriverServer& server_)
+ : ServiceFramework{system_, "IHOSBinderDriver", ServiceThreadType::CreateNew},
+ server(server_) {
static const FunctionInfo functions[] = {
{0, &IHOSBinderDriver::TransactParcel, "TransactParcel"},
{1, &IHOSBinderDriver::AdjustRefcount, "AdjustRefcount"},
@@ -508,147 +89,16 @@ public:
}
private:
- enum class TransactionId {
- RequestBuffer = 1,
- SetBufferCount = 2,
- DequeueBuffer = 3,
- DetachBuffer = 4,
- DetachNextBuffer = 5,
- AttachBuffer = 6,
- QueueBuffer = 7,
- CancelBuffer = 8,
- Query = 9,
- Connect = 10,
- Disconnect = 11,
-
- AllocateBuffers = 13,
- SetPreallocatedBuffer = 14,
-
- GetBufferHistory = 17
- };
-
void TransactParcel(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp{ctx};
const u32 id = rp.Pop<u32>();
- const auto transaction = static_cast<TransactionId>(rp.Pop<u32>());
+ const auto transaction = static_cast<android::TransactionId>(rp.Pop<u32>());
const u32 flags = rp.Pop<u32>();
LOG_DEBUG(Service_VI, "called. id=0x{:08X} transaction={:X}, flags=0x{:08X}", id,
transaction, flags);
- auto& buffer_queue = *nv_flinger.FindBufferQueue(id);
-
- switch (transaction) {
- case TransactionId::Connect: {
- IGBPConnectRequestParcel request{ctx.ReadBuffer()};
- IGBPConnectResponseParcel response{static_cast<u32>(DisplayResolution::UndockedWidth),
- static_cast<u32>(DisplayResolution::UndockedHeight)};
-
- buffer_queue.Connect();
-
- ctx.WriteBuffer(response.Serialize());
- break;
- }
- case TransactionId::SetPreallocatedBuffer: {
- IGBPSetPreallocatedBufferRequestParcel request{ctx.ReadBuffer()};
-
- buffer_queue.SetPreallocatedBuffer(request.data.slot, request.buffer_container.buffer);
-
- IGBPSetPreallocatedBufferResponseParcel response{};
- ctx.WriteBuffer(response.Serialize());
- break;
- }
- case TransactionId::DequeueBuffer: {
- IGBPDequeueBufferRequestParcel request{ctx.ReadBuffer()};
- const u32 width{request.data.width};
- const u32 height{request.data.height};
-
- do {
- if (auto result = buffer_queue.DequeueBuffer(width, height); result) {
- // Buffer is available
- IGBPDequeueBufferResponseParcel response{result->first, *result->second};
- ctx.WriteBuffer(response.Serialize());
- break;
- }
- } while (buffer_queue.IsConnected());
-
- break;
- }
- case TransactionId::RequestBuffer: {
- IGBPRequestBufferRequestParcel request{ctx.ReadBuffer()};
-
- auto& buffer = buffer_queue.RequestBuffer(request.slot);
- IGBPRequestBufferResponseParcel response{buffer};
- ctx.WriteBuffer(response.Serialize());
-
- break;
- }
- case TransactionId::QueueBuffer: {
- IGBPQueueBufferRequestParcel request{ctx.ReadBuffer()};
-
- buffer_queue.QueueBuffer(request.data.slot, request.data.transform,
- request.data.GetCropRect(), request.data.swap_interval,
- request.data.multi_fence);
-
- IGBPQueueBufferResponseParcel response{1280, 720};
- ctx.WriteBuffer(response.Serialize());
- break;
- }
- case TransactionId::Query: {
- IGBPQueryRequestParcel request{ctx.ReadBuffer()};
-
- const u32 value =
- buffer_queue.Query(static_cast<NVFlinger::BufferQueue::QueryType>(request.type));
-
- IGBPQueryResponseParcel response{value};
- ctx.WriteBuffer(response.Serialize());
- break;
- }
- case TransactionId::CancelBuffer: {
- IGBPCancelBufferRequestParcel request{ctx.ReadBuffer()};
-
- buffer_queue.CancelBuffer(request.data.slot, request.data.multi_fence);
-
- IGBPCancelBufferResponseParcel response{};
- ctx.WriteBuffer(response.Serialize());
- break;
- }
- case TransactionId::Disconnect: {
- LOG_WARNING(Service_VI, "(STUBBED) called, transaction=Disconnect");
- const auto buffer = ctx.ReadBuffer();
-
- buffer_queue.Disconnect();
-
- IGBPEmptyResponseParcel response{};
- ctx.WriteBuffer(response.Serialize());
- break;
- }
- case TransactionId::DetachBuffer: {
- const auto buffer = ctx.ReadBuffer();
-
- IGBPEmptyResponseParcel response{};
- ctx.WriteBuffer(response.Serialize());
- break;
- }
- case TransactionId::SetBufferCount: {
- LOG_WARNING(Service_VI, "(STUBBED) called, transaction=SetBufferCount");
- [[maybe_unused]] const auto buffer = ctx.ReadBuffer();
-
- IGBPEmptyResponseParcel response{};
- ctx.WriteBuffer(response.Serialize());
- break;
- }
- case TransactionId::GetBufferHistory: {
- LOG_WARNING(Service_VI, "(STUBBED) called, transaction=GetBufferHistory");
- [[maybe_unused]] const auto buffer = ctx.ReadBuffer();
-
- IGBPEmptyResponseParcel response{};
- ctx.WriteBuffer(response.Serialize());
- break;
- }
- default:
- ASSERT_MSG(false, "Unimplemented");
- }
+ server.TryGetProducer(id)->Transact(ctx, transaction, flags);
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(ResultSuccess);
@@ -674,13 +124,13 @@ private:
LOG_WARNING(Service_VI, "(STUBBED) called id={}, unknown={:08X}", id, unknown);
- // TODO(Subv): Find out what this actually is.
IPC::ResponseBuilder rb{ctx, 2, 1};
rb.Push(ResultSuccess);
- rb.PushCopyObjects(nv_flinger.FindBufferQueue(id)->GetBufferWaitEvent());
+ rb.PushCopyObjects(server.TryGetProducer(id)->GetNativeHandle());
}
- NVFlinger::NVFlinger& nv_flinger;
+private:
+ NVFlinger::HosBinderDriverServer& server;
};
class ISystemDisplayService final : public ServiceFramework<ISystemDisplayService> {
@@ -937,7 +387,40 @@ private:
class IApplicationDisplayService final : public ServiceFramework<IApplicationDisplayService> {
public:
- explicit IApplicationDisplayService(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_);
+ IApplicationDisplayService(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server_)
+ : ServiceFramework{system_, "IApplicationDisplayService"}, nv_flinger{nv_flinger_},
+ hos_binder_driver_server{hos_binder_driver_server_} {
+
+ static const FunctionInfo functions[] = {
+ {100, &IApplicationDisplayService::GetRelayService, "GetRelayService"},
+ {101, &IApplicationDisplayService::GetSystemDisplayService, "GetSystemDisplayService"},
+ {102, &IApplicationDisplayService::GetManagerDisplayService,
+ "GetManagerDisplayService"},
+ {103, &IApplicationDisplayService::GetIndirectDisplayTransactionService,
+ "GetIndirectDisplayTransactionService"},
+ {1000, &IApplicationDisplayService::ListDisplays, "ListDisplays"},
+ {1010, &IApplicationDisplayService::OpenDisplay, "OpenDisplay"},
+ {1011, &IApplicationDisplayService::OpenDefaultDisplay, "OpenDefaultDisplay"},
+ {1020, &IApplicationDisplayService::CloseDisplay, "CloseDisplay"},
+ {1101, &IApplicationDisplayService::SetDisplayEnabled, "SetDisplayEnabled"},
+ {1102, &IApplicationDisplayService::GetDisplayResolution, "GetDisplayResolution"},
+ {2020, &IApplicationDisplayService::OpenLayer, "OpenLayer"},
+ {2021, &IApplicationDisplayService::CloseLayer, "CloseLayer"},
+ {2030, &IApplicationDisplayService::CreateStrayLayer, "CreateStrayLayer"},
+ {2031, &IApplicationDisplayService::DestroyStrayLayer, "DestroyStrayLayer"},
+ {2101, &IApplicationDisplayService::SetLayerScalingMode, "SetLayerScalingMode"},
+ {2102, &IApplicationDisplayService::ConvertScalingMode, "ConvertScalingMode"},
+ {2450, &IApplicationDisplayService::GetIndirectLayerImageMap,
+ "GetIndirectLayerImageMap"},
+ {2451, nullptr, "GetIndirectLayerImageCropMap"},
+ {2460, &IApplicationDisplayService::GetIndirectLayerImageRequiredMemoryInfo,
+ "GetIndirectLayerImageRequiredMemoryInfo"},
+ {5202, &IApplicationDisplayService::GetDisplayVsyncEvent, "GetDisplayVsyncEvent"},
+ {5203, nullptr, "GetDisplayVsyncEventForDebug"},
+ };
+ RegisterHandlers(functions);
+ }
private:
enum class ConvertedScaleMode : u64 {
@@ -961,7 +444,7 @@ private:
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess);
- rb.PushIpcInterface<IHOSBinderDriver>(system, nv_flinger);
+ rb.PushIpcInterface<IHOSBinderDriver>(system, hos_binder_driver_server);
}
void GetSystemDisplayService(Kernel::HLERequestContext& ctx) {
@@ -985,7 +468,7 @@ private:
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess);
- rb.PushIpcInterface<IHOSBinderDriver>(system, nv_flinger);
+ rb.PushIpcInterface<IHOSBinderDriver>(system, hos_binder_driver_server);
}
void OpenDisplay(Kernel::HLERequestContext& ctx) {
@@ -1089,7 +572,7 @@ private:
void ListDisplays(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_VI, "(STUBBED) called");
- DisplayInfo display_info;
+ const DisplayInfo display_info;
ctx.WriteBuffer(&display_info, sizeof(DisplayInfo));
IPC::ResponseBuilder rb{ctx, 4};
rb.Push(ResultSuccess);
@@ -1124,8 +607,8 @@ private:
return;
}
- NativeWindow native_window{*buffer_queue_id};
- const auto buffer_size = ctx.WriteBuffer(native_window.Serialize());
+ const auto parcel = android::Parcel{NativeWindow{*buffer_queue_id}};
+ const auto buffer_size = ctx.WriteBuffer(parcel.Serialize());
IPC::ResponseBuilder rb{ctx, 4};
rb.Push(ResultSuccess);
@@ -1170,8 +653,8 @@ private:
return;
}
- NativeWindow native_window{*buffer_queue_id};
- const auto buffer_size = ctx.WriteBuffer(native_window.Serialize());
+ const auto parcel = android::Parcel{NativeWindow{*buffer_queue_id}};
+ const auto buffer_size = ctx.WriteBuffer(parcel.Serialize());
IPC::ResponseBuilder rb{ctx, 6};
rb.Push(ResultSuccess);
@@ -1287,39 +770,9 @@ private:
}
NVFlinger::NVFlinger& nv_flinger;
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server;
};
-IApplicationDisplayService::IApplicationDisplayService(Core::System& system_,
- NVFlinger::NVFlinger& nv_flinger_)
- : ServiceFramework{system_, "IApplicationDisplayService"}, nv_flinger{nv_flinger_} {
- static const FunctionInfo functions[] = {
- {100, &IApplicationDisplayService::GetRelayService, "GetRelayService"},
- {101, &IApplicationDisplayService::GetSystemDisplayService, "GetSystemDisplayService"},
- {102, &IApplicationDisplayService::GetManagerDisplayService, "GetManagerDisplayService"},
- {103, &IApplicationDisplayService::GetIndirectDisplayTransactionService,
- "GetIndirectDisplayTransactionService"},
- {1000, &IApplicationDisplayService::ListDisplays, "ListDisplays"},
- {1010, &IApplicationDisplayService::OpenDisplay, "OpenDisplay"},
- {1011, &IApplicationDisplayService::OpenDefaultDisplay, "OpenDefaultDisplay"},
- {1020, &IApplicationDisplayService::CloseDisplay, "CloseDisplay"},
- {1101, &IApplicationDisplayService::SetDisplayEnabled, "SetDisplayEnabled"},
- {1102, &IApplicationDisplayService::GetDisplayResolution, "GetDisplayResolution"},
- {2020, &IApplicationDisplayService::OpenLayer, "OpenLayer"},
- {2021, &IApplicationDisplayService::CloseLayer, "CloseLayer"},
- {2030, &IApplicationDisplayService::CreateStrayLayer, "CreateStrayLayer"},
- {2031, &IApplicationDisplayService::DestroyStrayLayer, "DestroyStrayLayer"},
- {2101, &IApplicationDisplayService::SetLayerScalingMode, "SetLayerScalingMode"},
- {2102, &IApplicationDisplayService::ConvertScalingMode, "ConvertScalingMode"},
- {2450, &IApplicationDisplayService::GetIndirectLayerImageMap, "GetIndirectLayerImageMap"},
- {2451, nullptr, "GetIndirectLayerImageCropMap"},
- {2460, &IApplicationDisplayService::GetIndirectLayerImageRequiredMemoryInfo,
- "GetIndirectLayerImageRequiredMemoryInfo"},
- {5202, &IApplicationDisplayService::GetDisplayVsyncEvent, "GetDisplayVsyncEvent"},
- {5203, nullptr, "GetDisplayVsyncEventForDebug"},
- };
- RegisterHandlers(functions);
-}
-
static bool IsValidServiceAccess(Permission permission, Policy policy) {
if (permission == Permission::User) {
return policy == Policy::User;
@@ -1333,7 +786,9 @@ static bool IsValidServiceAccess(Permission permission, Policy policy) {
}
void detail::GetDisplayServiceImpl(Kernel::HLERequestContext& ctx, Core::System& system,
- NVFlinger::NVFlinger& nv_flinger, Permission permission) {
+ NVFlinger::NVFlinger& nv_flinger,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server,
+ Permission permission) {
IPC::RequestParser rp{ctx};
const auto policy = rp.PopEnum<Policy>();
@@ -1346,14 +801,18 @@ void detail::GetDisplayServiceImpl(Kernel::HLERequestContext& ctx, Core::System&
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
rb.Push(ResultSuccess);
- rb.PushIpcInterface<IApplicationDisplayService>(system, nv_flinger);
+ rb.PushIpcInterface<IApplicationDisplayService>(system, nv_flinger, hos_binder_driver_server);
}
void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system,
- NVFlinger::NVFlinger& nv_flinger) {
- std::make_shared<VI_M>(system, nv_flinger)->InstallAsService(service_manager);
- std::make_shared<VI_S>(system, nv_flinger)->InstallAsService(service_manager);
- std::make_shared<VI_U>(system, nv_flinger)->InstallAsService(service_manager);
+ NVFlinger::NVFlinger& nv_flinger,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server) {
+ std::make_shared<VI_M>(system, nv_flinger, hos_binder_driver_server)
+ ->InstallAsService(service_manager);
+ std::make_shared<VI_S>(system, nv_flinger, hos_binder_driver_server)
+ ->InstallAsService(service_manager);
+ std::make_shared<VI_U>(system, nv_flinger, hos_binder_driver_server)
+ ->InstallAsService(service_manager);
}
} // namespace Service::VI
diff --git a/src/core/hle/service/vi/vi.h b/src/core/hle/service/vi/vi.h
index 2fd7f8e61..d68f2646b 100644
--- a/src/core/hle/service/vi/vi.h
+++ b/src/core/hle/service/vi/vi.h
@@ -15,8 +15,9 @@ class HLERequestContext;
}
namespace Service::NVFlinger {
+class HosBinderDriverServer;
class NVFlinger;
-}
+} // namespace Service::NVFlinger
namespace Service::SM {
class ServiceManager;
@@ -47,11 +48,14 @@ enum class Policy {
namespace detail {
void GetDisplayServiceImpl(Kernel::HLERequestContext& ctx, Core::System& system,
- NVFlinger::NVFlinger& nv_flinger, Permission permission);
+ NVFlinger::NVFlinger& nv_flinger,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server,
+ Permission permission);
} // namespace detail
/// Registers all VI services with the specified service manager.
void InstallInterfaces(SM::ServiceManager& service_manager, Core::System& system,
- NVFlinger::NVFlinger& nv_flinger);
+ NVFlinger::NVFlinger& nv_flinger,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server);
} // namespace Service::VI
diff --git a/src/core/hle/service/vi/vi_m.cpp b/src/core/hle/service/vi/vi_m.cpp
index 87db1c416..be0255f3d 100644
--- a/src/core/hle/service/vi/vi_m.cpp
+++ b/src/core/hle/service/vi/vi_m.cpp
@@ -8,8 +8,10 @@
namespace Service::VI {
-VI_M::VI_M(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_)
- : ServiceFramework{system_, "vi:m"}, nv_flinger{nv_flinger_} {
+VI_M::VI_M(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server_)
+ : ServiceFramework{system_, "vi:m"}, nv_flinger{nv_flinger_}, hos_binder_driver_server{
+ hos_binder_driver_server_} {
static const FunctionInfo functions[] = {
{2, &VI_M::GetDisplayService, "GetDisplayService"},
{3, nullptr, "GetDisplayServiceWithProxyNameExchange"},
@@ -22,7 +24,8 @@ VI_M::~VI_M() = default;
void VI_M::GetDisplayService(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_VI, "called");
- detail::GetDisplayServiceImpl(ctx, system, nv_flinger, Permission::Manager);
+ detail::GetDisplayServiceImpl(ctx, system, nv_flinger, hos_binder_driver_server,
+ Permission::Manager);
}
} // namespace Service::VI
diff --git a/src/core/hle/service/vi/vi_m.h b/src/core/hle/service/vi/vi_m.h
index d79c41beb..efbd34e09 100644
--- a/src/core/hle/service/vi/vi_m.h
+++ b/src/core/hle/service/vi/vi_m.h
@@ -15,20 +15,23 @@ class HLERequestContext;
}
namespace Service::NVFlinger {
+class HosBinderDriverServer;
class NVFlinger;
-}
+} // namespace Service::NVFlinger
namespace Service::VI {
class VI_M final : public ServiceFramework<VI_M> {
public:
- explicit VI_M(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_);
+ explicit VI_M(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server_);
~VI_M() override;
private:
void GetDisplayService(Kernel::HLERequestContext& ctx);
NVFlinger::NVFlinger& nv_flinger;
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server;
};
} // namespace Service::VI
diff --git a/src/core/hle/service/vi/vi_s.cpp b/src/core/hle/service/vi/vi_s.cpp
index 5cd22f7df..7996a6811 100644
--- a/src/core/hle/service/vi/vi_s.cpp
+++ b/src/core/hle/service/vi/vi_s.cpp
@@ -8,8 +8,10 @@
namespace Service::VI {
-VI_S::VI_S(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_)
- : ServiceFramework{system_, "vi:s"}, nv_flinger{nv_flinger_} {
+VI_S::VI_S(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server_)
+ : ServiceFramework{system_, "vi:s"}, nv_flinger{nv_flinger_}, hos_binder_driver_server{
+ hos_binder_driver_server_} {
static const FunctionInfo functions[] = {
{1, &VI_S::GetDisplayService, "GetDisplayService"},
{3, nullptr, "GetDisplayServiceWithProxyNameExchange"},
@@ -22,7 +24,8 @@ VI_S::~VI_S() = default;
void VI_S::GetDisplayService(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_VI, "called");
- detail::GetDisplayServiceImpl(ctx, system, nv_flinger, Permission::System);
+ detail::GetDisplayServiceImpl(ctx, system, nv_flinger, hos_binder_driver_server,
+ Permission::System);
}
} // namespace Service::VI
diff --git a/src/core/hle/service/vi/vi_s.h b/src/core/hle/service/vi/vi_s.h
index 5f1f8f290..3812c5061 100644
--- a/src/core/hle/service/vi/vi_s.h
+++ b/src/core/hle/service/vi/vi_s.h
@@ -15,20 +15,23 @@ class HLERequestContext;
}
namespace Service::NVFlinger {
+class HosBinderDriverServer;
class NVFlinger;
-}
+} // namespace Service::NVFlinger
namespace Service::VI {
class VI_S final : public ServiceFramework<VI_S> {
public:
- explicit VI_S(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_);
+ explicit VI_S(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server_);
~VI_S() override;
private:
void GetDisplayService(Kernel::HLERequestContext& ctx);
NVFlinger::NVFlinger& nv_flinger;
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server;
};
} // namespace Service::VI
diff --git a/src/core/hle/service/vi/vi_u.cpp b/src/core/hle/service/vi/vi_u.cpp
index 0079d51f0..57c888313 100644
--- a/src/core/hle/service/vi/vi_u.cpp
+++ b/src/core/hle/service/vi/vi_u.cpp
@@ -8,8 +8,10 @@
namespace Service::VI {
-VI_U::VI_U(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_)
- : ServiceFramework{system_, "vi:u"}, nv_flinger{nv_flinger_} {
+VI_U::VI_U(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server_)
+ : ServiceFramework{system_, "vi:u"}, nv_flinger{nv_flinger_}, hos_binder_driver_server{
+ hos_binder_driver_server_} {
static const FunctionInfo functions[] = {
{0, &VI_U::GetDisplayService, "GetDisplayService"},
{1, nullptr, "GetDisplayServiceWithProxyNameExchange"},
@@ -22,7 +24,8 @@ VI_U::~VI_U() = default;
void VI_U::GetDisplayService(Kernel::HLERequestContext& ctx) {
LOG_DEBUG(Service_VI, "called");
- detail::GetDisplayServiceImpl(ctx, system, nv_flinger, Permission::User);
+ detail::GetDisplayServiceImpl(ctx, system, nv_flinger, hos_binder_driver_server,
+ Permission::User);
}
} // namespace Service::VI
diff --git a/src/core/hle/service/vi/vi_u.h b/src/core/hle/service/vi/vi_u.h
index 8e3885c73..b08e56576 100644
--- a/src/core/hle/service/vi/vi_u.h
+++ b/src/core/hle/service/vi/vi_u.h
@@ -15,20 +15,23 @@ class HLERequestContext;
}
namespace Service::NVFlinger {
+class HosBinderDriverServer;
class NVFlinger;
-}
+} // namespace Service::NVFlinger
namespace Service::VI {
class VI_U final : public ServiceFramework<VI_U> {
public:
- explicit VI_U(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_);
+ explicit VI_U(Core::System& system_, NVFlinger::NVFlinger& nv_flinger_,
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server_);
~VI_U() override;
private:
void GetDisplayService(Kernel::HLERequestContext& ctx);
NVFlinger::NVFlinger& nv_flinger;
+ NVFlinger::HosBinderDriverServer& hos_binder_driver_server;
};
} // namespace Service::VI
diff --git a/src/core/network/network.cpp b/src/core/network/network.cpp
index a3e0664b9..0784a165d 100644
--- a/src/core/network/network.cpp
+++ b/src/core/network/network.cpp
@@ -600,6 +600,10 @@ Errno Socket::SetReuseAddr(bool enable) {
return SetSockOpt<u32>(fd, SO_REUSEADDR, enable ? 1 : 0);
}
+Errno Socket::SetKeepAlive(bool enable) {
+ return SetSockOpt<u32>(fd, SO_KEEPALIVE, enable ? 1 : 0);
+}
+
Errno Socket::SetBroadcast(bool enable) {
return SetSockOpt<u32>(fd, SO_BROADCAST, enable ? 1 : 0);
}
diff --git a/src/core/network/sockets.h b/src/core/network/sockets.h
index a44393325..caaefce7c 100644
--- a/src/core/network/sockets.h
+++ b/src/core/network/sockets.h
@@ -8,7 +8,6 @@
#include <utility>
#if defined(_WIN32)
-#include <winsock.h>
#elif !YUZU_UNIX
#error "Platform not implemented"
#endif
@@ -68,6 +67,8 @@ public:
Errno SetReuseAddr(bool enable);
+ Errno SetKeepAlive(bool enable);
+
Errno SetBroadcast(bool enable);
Errno SetSndBuf(u32 value);
diff --git a/src/core/perf_stats.cpp b/src/core/perf_stats.cpp
index 52c43c857..6ef459b7a 100644
--- a/src/core/perf_stats.cpp
+++ b/src/core/perf_stats.cpp
@@ -53,13 +53,13 @@ PerfStats::~PerfStats() {
}
void PerfStats::BeginSystemFrame() {
- std::lock_guard lock{object_mutex};
+ std::scoped_lock lock{object_mutex};
frame_begin = Clock::now();
}
void PerfStats::EndSystemFrame() {
- std::lock_guard lock{object_mutex};
+ std::scoped_lock lock{object_mutex};
auto frame_end = Clock::now();
const auto frame_time = frame_end - frame_begin;
@@ -79,7 +79,7 @@ void PerfStats::EndGameFrame() {
}
double PerfStats::GetMeanFrametime() const {
- std::lock_guard lock{object_mutex};
+ std::scoped_lock lock{object_mutex};
if (current_index <= IgnoreFrames) {
return 0;
@@ -91,7 +91,7 @@ double PerfStats::GetMeanFrametime() const {
}
PerfStatsResults PerfStats::GetAndResetStats(microseconds current_system_time_us) {
- std::lock_guard lock{object_mutex};
+ std::scoped_lock lock{object_mutex};
const auto now = Clock::now();
// Walltime elapsed since stats were reset
@@ -120,7 +120,7 @@ PerfStatsResults PerfStats::GetAndResetStats(microseconds current_system_time_us
}
double PerfStats::GetLastFrameTimeScale() const {
- std::lock_guard lock{object_mutex};
+ std::scoped_lock lock{object_mutex};
constexpr double FRAME_LENGTH = 1.0 / 60;
return duration_cast<DoubleSecs>(previous_frame_length).count() / FRAME_LENGTH;
diff --git a/src/core/reporter.cpp b/src/core/reporter.cpp
index d4becdc0a..89faed6ee 100644
--- a/src/core/reporter.cpp
+++ b/src/core/reporter.cpp
@@ -8,7 +8,6 @@
#include <fmt/chrono.h>
#include <fmt/format.h>
-#include <fmt/ostream.h>
#include <nlohmann/json.hpp>
#include "common/fs/file.h"
diff --git a/src/core/tools/freezer.cpp b/src/core/tools/freezer.cpp
index 032c71aff..c81dc0e52 100644
--- a/src/core/tools/freezer.cpp
+++ b/src/core/tools/freezer.cpp
@@ -80,7 +80,7 @@ bool Freezer::IsActive() const {
}
void Freezer::Clear() {
- std::lock_guard lock{entries_mutex};
+ std::scoped_lock lock{entries_mutex};
LOG_DEBUG(Common_Memory, "Clearing all frozen memory values.");
@@ -88,7 +88,7 @@ void Freezer::Clear() {
}
u64 Freezer::Freeze(VAddr address, u32 width) {
- std::lock_guard lock{entries_mutex};
+ std::scoped_lock lock{entries_mutex};
const auto current_value = MemoryReadWidth(memory, width, address);
entries.push_back({address, width, current_value});
@@ -101,7 +101,7 @@ u64 Freezer::Freeze(VAddr address, u32 width) {
}
void Freezer::Unfreeze(VAddr address) {
- std::lock_guard lock{entries_mutex};
+ std::scoped_lock lock{entries_mutex};
LOG_DEBUG(Common_Memory, "Unfreezing memory for address={:016X}", address);
@@ -109,13 +109,13 @@ void Freezer::Unfreeze(VAddr address) {
}
bool Freezer::IsFrozen(VAddr address) const {
- std::lock_guard lock{entries_mutex};
+ std::scoped_lock lock{entries_mutex};
return FindEntry(address) != entries.cend();
}
void Freezer::SetFrozenValue(VAddr address, u64 value) {
- std::lock_guard lock{entries_mutex};
+ std::scoped_lock lock{entries_mutex};
const auto iter = FindEntry(address);
@@ -132,7 +132,7 @@ void Freezer::SetFrozenValue(VAddr address, u64 value) {
}
std::optional<Freezer::Entry> Freezer::GetEntry(VAddr address) const {
- std::lock_guard lock{entries_mutex};
+ std::scoped_lock lock{entries_mutex};
const auto iter = FindEntry(address);
@@ -144,7 +144,7 @@ std::optional<Freezer::Entry> Freezer::GetEntry(VAddr address) const {
}
std::vector<Freezer::Entry> Freezer::GetEntries() const {
- std::lock_guard lock{entries_mutex};
+ std::scoped_lock lock{entries_mutex};
return entries;
}
@@ -165,7 +165,7 @@ void Freezer::FrameCallback(std::uintptr_t, std::chrono::nanoseconds ns_late) {
return;
}
- std::lock_guard lock{entries_mutex};
+ std::scoped_lock lock{entries_mutex};
for (const auto& entry : entries) {
LOG_DEBUG(Common_Memory,
@@ -178,7 +178,7 @@ void Freezer::FrameCallback(std::uintptr_t, std::chrono::nanoseconds ns_late) {
}
void Freezer::FillEntryReads() {
- std::lock_guard lock{entries_mutex};
+ std::scoped_lock lock{entries_mutex};
LOG_DEBUG(Common_Memory, "Updating memory freeze entries to current values.");
diff --git a/src/input_common/drivers/gc_adapter.h b/src/input_common/drivers/gc_adapter.h
index 7ce1912a3..43ad58c85 100644
--- a/src/input_common/drivers/gc_adapter.h
+++ b/src/input_common/drivers/gc_adapter.h
@@ -6,7 +6,6 @@
#include <array>
#include <memory>
-#include <mutex>
#include <stop_token>
#include <string>
#include <thread>
diff --git a/src/input_common/drivers/sdl_driver.cpp b/src/input_common/drivers/sdl_driver.cpp
index c17ea305e..b3e4c3f64 100644
--- a/src/input_common/drivers/sdl_driver.cpp
+++ b/src/input_common/drivers/sdl_driver.cpp
@@ -62,7 +62,7 @@ public:
bool UpdateMotion(SDL_ControllerSensorEvent event) {
constexpr float gravity_constant = 9.80665f;
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
const u64 time_difference = event.timestamp - last_motion_update;
last_motion_update = event.timestamp;
switch (event.sensor) {
@@ -241,7 +241,7 @@ private:
};
std::shared_ptr<SDLJoystick> SDLDriver::GetSDLJoystickByGUID(const std::string& guid, int port) {
- std::lock_guard lock{joystick_map_mutex};
+ std::scoped_lock lock{joystick_map_mutex};
const auto it = joystick_map.find(guid);
if (it != joystick_map.end()) {
@@ -263,7 +263,7 @@ std::shared_ptr<SDLJoystick> SDLDriver::GetSDLJoystickBySDLID(SDL_JoystickID sdl
auto sdl_joystick = SDL_JoystickFromInstanceID(sdl_id);
const std::string guid = GetGUID(sdl_joystick);
- std::lock_guard lock{joystick_map_mutex};
+ std::scoped_lock lock{joystick_map_mutex};
const auto map_it = joystick_map.find(guid);
if (map_it == joystick_map.end()) {
@@ -297,7 +297,7 @@ void SDLDriver::InitJoystick(int joystick_index) {
const std::string guid = GetGUID(sdl_joystick);
- std::lock_guard lock{joystick_map_mutex};
+ std::scoped_lock lock{joystick_map_mutex};
if (joystick_map.find(guid) == joystick_map.end()) {
auto joystick = std::make_shared<SDLJoystick>(guid, 0, sdl_joystick, sdl_gamecontroller);
PreSetController(joystick->GetPadIdentifier());
@@ -326,7 +326,7 @@ void SDLDriver::InitJoystick(int joystick_index) {
void SDLDriver::CloseJoystick(SDL_Joystick* sdl_joystick) {
const std::string guid = GetGUID(sdl_joystick);
- std::lock_guard lock{joystick_map_mutex};
+ std::scoped_lock lock{joystick_map_mutex};
// This call to guid is safe since the joystick is guaranteed to be in the map
const auto& joystick_guid_list = joystick_map[guid];
const auto joystick_it = std::find_if(joystick_guid_list.begin(), joystick_guid_list.end(),
@@ -392,7 +392,7 @@ void SDLDriver::HandleGameControllerEvent(const SDL_Event& event) {
}
void SDLDriver::CloseJoysticks() {
- std::lock_guard lock{joystick_map_mutex};
+ std::scoped_lock lock{joystick_map_mutex};
joystick_map.clear();
}
diff --git a/src/input_common/helpers/udp_protocol.h b/src/input_common/helpers/udp_protocol.h
index 2d5d54ddb..9c205e944 100644
--- a/src/input_common/helpers/udp_protocol.h
+++ b/src/input_common/helpers/udp_protocol.h
@@ -10,7 +10,6 @@
#include <boost/crc.hpp>
-#include "common/bit_field.h"
#include "common/swap.h"
namespace InputCommon::CemuhookUDP {
diff --git a/src/input_common/input_engine.cpp b/src/input_common/input_engine.cpp
index 7adf7e3d7..a16cca33d 100644
--- a/src/input_common/input_engine.cpp
+++ b/src/input_common/input_engine.cpp
@@ -3,43 +3,42 @@
// Refer to the license.txt file included
#include "common/logging/log.h"
-#include "common/param_package.h"
#include "input_common/input_engine.h"
namespace InputCommon {
void InputEngine::PreSetController(const PadIdentifier& identifier) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
controller_list.try_emplace(identifier);
}
void InputEngine::PreSetButton(const PadIdentifier& identifier, int button) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
ControllerData& controller = controller_list.at(identifier);
controller.buttons.try_emplace(button, false);
}
void InputEngine::PreSetHatButton(const PadIdentifier& identifier, int button) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
ControllerData& controller = controller_list.at(identifier);
controller.hat_buttons.try_emplace(button, u8{0});
}
void InputEngine::PreSetAxis(const PadIdentifier& identifier, int axis) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
ControllerData& controller = controller_list.at(identifier);
controller.axes.try_emplace(axis, 0.0f);
}
void InputEngine::PreSetMotion(const PadIdentifier& identifier, int motion) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
ControllerData& controller = controller_list.at(identifier);
controller.motions.try_emplace(motion);
}
void InputEngine::SetButton(const PadIdentifier& identifier, int button, bool value) {
{
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
ControllerData& controller = controller_list.at(identifier);
if (!configuring) {
controller.buttons.insert_or_assign(button, value);
@@ -50,7 +49,7 @@ void InputEngine::SetButton(const PadIdentifier& identifier, int button, bool va
void InputEngine::SetHatButton(const PadIdentifier& identifier, int button, u8 value) {
{
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
ControllerData& controller = controller_list.at(identifier);
if (!configuring) {
controller.hat_buttons.insert_or_assign(button, value);
@@ -61,7 +60,7 @@ void InputEngine::SetHatButton(const PadIdentifier& identifier, int button, u8 v
void InputEngine::SetAxis(const PadIdentifier& identifier, int axis, f32 value) {
{
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
ControllerData& controller = controller_list.at(identifier);
if (!configuring) {
controller.axes.insert_or_assign(axis, value);
@@ -72,7 +71,7 @@ void InputEngine::SetAxis(const PadIdentifier& identifier, int axis, f32 value)
void InputEngine::SetBattery(const PadIdentifier& identifier, Common::Input::BatteryLevel value) {
{
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
ControllerData& controller = controller_list.at(identifier);
if (!configuring) {
controller.battery = value;
@@ -83,7 +82,7 @@ void InputEngine::SetBattery(const PadIdentifier& identifier, Common::Input::Bat
void InputEngine::SetMotion(const PadIdentifier& identifier, int motion, const BasicMotion& value) {
{
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
ControllerData& controller = controller_list.at(identifier);
if (!configuring) {
controller.motions.insert_or_assign(motion, value);
@@ -93,7 +92,7 @@ void InputEngine::SetMotion(const PadIdentifier& identifier, int motion, const B
}
bool InputEngine::GetButton(const PadIdentifier& identifier, int button) const {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
const auto controller_iter = controller_list.find(identifier);
if (controller_iter == controller_list.cend()) {
LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(),
@@ -110,7 +109,7 @@ bool InputEngine::GetButton(const PadIdentifier& identifier, int button) const {
}
bool InputEngine::GetHatButton(const PadIdentifier& identifier, int button, u8 direction) const {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
const auto controller_iter = controller_list.find(identifier);
if (controller_iter == controller_list.cend()) {
LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(),
@@ -127,7 +126,7 @@ bool InputEngine::GetHatButton(const PadIdentifier& identifier, int button, u8 d
}
f32 InputEngine::GetAxis(const PadIdentifier& identifier, int axis) const {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
const auto controller_iter = controller_list.find(identifier);
if (controller_iter == controller_list.cend()) {
LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(),
@@ -144,7 +143,7 @@ f32 InputEngine::GetAxis(const PadIdentifier& identifier, int axis) const {
}
Common::Input::BatteryLevel InputEngine::GetBattery(const PadIdentifier& identifier) const {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
const auto controller_iter = controller_list.find(identifier);
if (controller_iter == controller_list.cend()) {
LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(),
@@ -156,7 +155,7 @@ Common::Input::BatteryLevel InputEngine::GetBattery(const PadIdentifier& identif
}
BasicMotion InputEngine::GetMotion(const PadIdentifier& identifier, int motion) const {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
const auto controller_iter = controller_list.find(identifier);
if (controller_iter == controller_list.cend()) {
LOG_ERROR(Input, "Invalid identifier guid={}, pad={}, port={}", identifier.guid.RawString(),
@@ -187,7 +186,7 @@ void InputEngine::ResetAnalogState() {
}
void InputEngine::TriggerOnButtonChange(const PadIdentifier& identifier, int button, bool value) {
- std::lock_guard lock{mutex_callback};
+ std::scoped_lock lock{mutex_callback};
for (const auto& poller_pair : callback_list) {
const InputIdentifier& poller = poller_pair.second;
if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Button, button)) {
@@ -215,7 +214,7 @@ void InputEngine::TriggerOnButtonChange(const PadIdentifier& identifier, int but
}
void InputEngine::TriggerOnHatButtonChange(const PadIdentifier& identifier, int button, u8 value) {
- std::lock_guard lock{mutex_callback};
+ std::scoped_lock lock{mutex_callback};
for (const auto& poller_pair : callback_list) {
const InputIdentifier& poller = poller_pair.second;
if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::HatButton, button)) {
@@ -244,7 +243,7 @@ void InputEngine::TriggerOnHatButtonChange(const PadIdentifier& identifier, int
}
void InputEngine::TriggerOnAxisChange(const PadIdentifier& identifier, int axis, f32 value) {
- std::lock_guard lock{mutex_callback};
+ std::scoped_lock lock{mutex_callback};
for (const auto& poller_pair : callback_list) {
const InputIdentifier& poller = poller_pair.second;
if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Analog, axis)) {
@@ -271,7 +270,7 @@ void InputEngine::TriggerOnAxisChange(const PadIdentifier& identifier, int axis,
void InputEngine::TriggerOnBatteryChange(const PadIdentifier& identifier,
[[maybe_unused]] Common::Input::BatteryLevel value) {
- std::lock_guard lock{mutex_callback};
+ std::scoped_lock lock{mutex_callback};
for (const auto& poller_pair : callback_list) {
const InputIdentifier& poller = poller_pair.second;
if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Battery, 0)) {
@@ -285,7 +284,7 @@ void InputEngine::TriggerOnBatteryChange(const PadIdentifier& identifier,
void InputEngine::TriggerOnMotionChange(const PadIdentifier& identifier, int motion,
const BasicMotion& value) {
- std::lock_guard lock{mutex_callback};
+ std::scoped_lock lock{mutex_callback};
for (const auto& poller_pair : callback_list) {
const InputIdentifier& poller = poller_pair.second;
if (!IsInputIdentifierEqual(poller, identifier, EngineInputType::Motion, motion)) {
@@ -347,18 +346,18 @@ const std::string& InputEngine::GetEngineName() const {
}
int InputEngine::SetCallback(InputIdentifier input_identifier) {
- std::lock_guard lock{mutex_callback};
+ std::scoped_lock lock{mutex_callback};
callback_list.insert_or_assign(last_callback_key, std::move(input_identifier));
return last_callback_key++;
}
void InputEngine::SetMappingCallback(MappingCallback callback) {
- std::lock_guard lock{mutex_callback};
+ std::scoped_lock lock{mutex_callback};
mapping_callback = std::move(callback);
}
void InputEngine::DeleteCallback(int key) {
- std::lock_guard lock{mutex_callback};
+ std::scoped_lock lock{mutex_callback};
const auto& iterator = callback_list.find(key);
if (iterator == callback_list.end()) {
LOG_ERROR(Input, "Tried to delete non-existent callback {}", key);
diff --git a/src/input_common/main.cpp b/src/input_common/main.cpp
index a4d7ed645..28769c6d8 100644
--- a/src/input_common/main.cpp
+++ b/src/input_common/main.cpp
@@ -3,7 +3,6 @@
// Refer to the license.txt file included.
#include <memory>
-#include <thread>
#include "common/input.h"
#include "common/param_package.h"
#include "input_common/drivers/gc_adapter.h"
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm_convert.cpp b/src/shader_recompiler/backend/glasm/emit_glasm_convert.cpp
index 4cff70fe4..8603c6be2 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm_convert.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_glasm_convert.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/backend/glasm/emit_glasm_instructions.h"
#include "shader_recompiler/backend/glasm/glasm_emit_context.h"
#include "shader_recompiler/frontend/ir/modifiers.h"
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm_floating_point.cpp b/src/shader_recompiler/backend/glasm/emit_glasm_floating_point.cpp
index 356640471..e4b6b6f31 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm_floating_point.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_glasm_floating_point.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/backend/glasm/emit_glasm_instructions.h"
#include "shader_recompiler/backend/glasm/glasm_emit_context.h"
#include "shader_recompiler/frontend/ir/modifiers.h"
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm_memory.cpp b/src/shader_recompiler/backend/glasm/emit_glasm_memory.cpp
index f0fd94a28..44b363b50 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm_memory.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_glasm_memory.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/backend/glasm/emit_glasm_instructions.h"
#include "shader_recompiler/backend/glasm/glasm_emit_context.h"
#include "shader_recompiler/frontend/ir/program.h"
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp b/src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp
index 86287ee3f..affe35be7 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp
@@ -2,11 +2,8 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/backend/glasm/emit_glasm_instructions.h"
#include "shader_recompiler/backend/glasm/glasm_emit_context.h"
-#include "shader_recompiler/frontend/ir/program.h"
#include "shader_recompiler/frontend/ir/value.h"
#ifdef _MSC_VER
diff --git a/src/shader_recompiler/backend/glasm/glasm_emit_context.cpp b/src/shader_recompiler/backend/glasm/glasm_emit_context.cpp
index 0401953f7..af88b7dfa 100644
--- a/src/shader_recompiler/backend/glasm/glasm_emit_context.cpp
+++ b/src/shader_recompiler/backend/glasm/glasm_emit_context.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/backend/bindings.h"
#include "shader_recompiler/backend/glasm/emit_glasm.h"
#include "shader_recompiler/backend/glasm/glasm_emit_context.h"
diff --git a/src/shader_recompiler/backend/glasm/reg_alloc.cpp b/src/shader_recompiler/backend/glasm/reg_alloc.cpp
index 201e428c1..4e98d3ea0 100644
--- a/src/shader_recompiler/backend/glasm/reg_alloc.cpp
+++ b/src/shader_recompiler/backend/glasm/reg_alloc.cpp
@@ -2,11 +2,8 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string>
-
#include <fmt/format.h>
-#include "shader_recompiler/backend/glasm/glasm_emit_context.h"
#include "shader_recompiler/backend/glasm/reg_alloc.h"
#include "shader_recompiler/exception.h"
#include "shader_recompiler/frontend/ir/value.h"
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_barriers.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_barriers.cpp
index 8a9faa394..0f204495c 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_barriers.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_barriers.cpp
@@ -4,7 +4,6 @@
#include "shader_recompiler/backend/glsl/emit_glsl_instructions.h"
#include "shader_recompiler/backend/glsl/glsl_emit_context.h"
-#include "shader_recompiler/frontend/ir/value.h"
namespace Shader::Backend::GLSL {
void EmitBarrier(EmitContext& ctx) {
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_context_get_set.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_context_get_set.cpp
index 0c1fbc7b1..282668b36 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_context_get_set.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_context_get_set.cpp
@@ -35,6 +35,15 @@ std::string_view OutputVertexIndex(EmitContext& ctx) {
return ctx.stage == Stage::TessellationControl ? "[gl_InvocationID]" : "";
}
+std::string ChooseCbuf(EmitContext& ctx, const IR::Value& binding, std::string_view index) {
+ if (binding.IsImmediate()) {
+ return fmt::format("{}_cbuf{}[{}]", ctx.stage_name, binding.U32(), index);
+ } else {
+ const auto binding_var{ctx.var_alloc.Consume(binding)};
+ return fmt::format("GetCbufIndirect({},{})", binding_var, index);
+ }
+}
+
void GetCbuf(EmitContext& ctx, std::string_view ret, const IR::Value& binding,
const IR::Value& offset, u32 num_bits, std::string_view cast = {},
std::string_view bit_offset = {}) {
@@ -55,8 +64,8 @@ void GetCbuf(EmitContext& ctx, std::string_view ret, const IR::Value& binding,
const auto swizzle{is_immediate ? fmt::format(".{}", OffsetSwizzle(offset.U32()))
: fmt::format("[({}>>2)%4]", offset_var)};
- const auto cbuf{fmt::format("{}_cbuf{}", ctx.stage_name, binding.U32())};
- const auto cbuf_cast{fmt::format("{}({}[{}]{{}})", cast, cbuf, index)};
+ const auto cbuf{ChooseCbuf(ctx, binding, index)};
+ const auto cbuf_cast{fmt::format("{}({}{{}})", cast, cbuf)};
const auto extraction{num_bits == 32 ? cbuf_cast
: fmt::format("bitfieldExtract({},int({}),{})", cbuf_cast,
bit_offset, num_bits)};
@@ -140,9 +149,9 @@ void EmitGetCbufF32(EmitContext& ctx, IR::Inst& inst, const IR::Value& binding,
void EmitGetCbufU32x2(EmitContext& ctx, IR::Inst& inst, const IR::Value& binding,
const IR::Value& offset) {
- const auto cbuf{fmt::format("{}_cbuf{}", ctx.stage_name, binding.U32())};
const auto cast{ctx.profile.has_gl_cbuf_ftou_bug ? "" : "ftou"};
if (offset.IsImmediate()) {
+ const auto cbuf{fmt::format("{}_cbuf{}", ctx.stage_name, binding.U32())};
static constexpr u32 cbuf_size{0x10000};
const u32 u32_offset{offset.U32()};
const s32 signed_offset{static_cast<s32>(offset.U32())};
@@ -162,17 +171,17 @@ void EmitGetCbufU32x2(EmitContext& ctx, IR::Inst& inst, const IR::Value& binding
return;
}
const auto offset_var{ctx.var_alloc.Consume(offset)};
+ const auto cbuf{ChooseCbuf(ctx, binding, fmt::format("{}>>4", offset_var))};
if (!ctx.profile.has_gl_component_indexing_bug) {
- ctx.AddU32x2("{}=uvec2({}({}[{}>>4][({}>>2)%4]),{}({}[({}+4)>>4][(({}+4)>>2)%4]));", inst,
- cast, cbuf, offset_var, offset_var, cast, cbuf, offset_var, offset_var);
+ ctx.AddU32x2("{}=uvec2({}({}[({}>>2)%4]),{}({}[(({}+4)>>2)%4]));", inst, cast, cbuf,
+ offset_var, cast, cbuf, offset_var);
return;
}
const auto ret{ctx.var_alloc.Define(inst, GlslVarType::U32x2)};
const auto cbuf_offset{fmt::format("{}>>2", offset_var)};
for (u32 swizzle = 0; swizzle < 4; ++swizzle) {
- ctx.Add("if(({}&3)=={}){}=uvec2({}({}[{}>>4].{}),{}({}[({}+4)>>4].{}));", cbuf_offset,
- swizzle, ret, cast, cbuf, offset_var, "xyzw"[swizzle], cast, cbuf, offset_var,
- "xyzw"[(swizzle + 1) % 4]);
+ ctx.Add("if(({}&3)=={}){}=uvec2({}({}.{}),{}({}.{}));", cbuf_offset, swizzle, ret, cast,
+ cbuf, "xyzw"[swizzle], cast, cbuf, "xyzw"[(swizzle + 1) % 4]);
}
}
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_control_flow.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_control_flow.cpp
index c86465e8b..6f61560f1 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_control_flow.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_control_flow.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/backend/glsl/emit_glsl_instructions.h"
#include "shader_recompiler/backend/glsl/glsl_emit_context.h"
#include "shader_recompiler/exception.h"
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp
index b0d85be99..64322cdbf 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_integer.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/backend/glsl/emit_glsl_instructions.h"
#include "shader_recompiler/backend/glsl/glsl_emit_context.h"
#include "shader_recompiler/frontend/ir/value.h"
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_logical.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_logical.cpp
index 742fec9cf..162a8c461 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_logical.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_logical.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/backend/glsl/emit_glsl_instructions.h"
#include "shader_recompiler/backend/glsl/glsl_emit_context.h"
#include "shader_recompiler/frontend/ir/value.h"
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_shared_memory.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_shared_memory.cpp
index 74ae345e5..f8aa4ecd6 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_shared_memory.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_shared_memory.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/backend/glsl/emit_glsl_instructions.h"
#include "shader_recompiler/backend/glsl/glsl_emit_context.h"
#include "shader_recompiler/frontend/ir/value.h"
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_special.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_special.cpp
index fcf620b79..8b94ea90a 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_special.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_special.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/backend/glsl/emit_glsl_instructions.h"
#include "shader_recompiler/backend/glsl/glsl_emit_context.h"
#include "shader_recompiler/frontend/ir/program.h"
diff --git a/src/shader_recompiler/backend/glsl/emit_glsl_undefined.cpp b/src/shader_recompiler/backend/glsl/emit_glsl_undefined.cpp
index cace1db85..9367524e8 100644
--- a/src/shader_recompiler/backend/glsl/emit_glsl_undefined.cpp
+++ b/src/shader_recompiler/backend/glsl/emit_glsl_undefined.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/backend/glsl/emit_glsl_instructions.h"
#include "shader_recompiler/backend/glsl/glsl_emit_context.h"
diff --git a/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp b/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp
index e816a93ec..17266f40d 100644
--- a/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp
+++ b/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp
@@ -359,6 +359,7 @@ EmitContext::EmitContext(IR::Program& program, Bindings& bindings, const Profile
header += "layout(location=0) uniform vec4 scaling;";
}
DefineConstantBuffers(bindings);
+ DefineConstantBufferIndirect();
DefineStorageBuffers(bindings);
SetupImages(bindings);
SetupTextures(bindings);
@@ -436,6 +437,24 @@ void EmitContext::DefineConstantBuffers(Bindings& bindings) {
}
}
+void EmitContext::DefineConstantBufferIndirect() {
+ if (!info.uses_cbuf_indirect) {
+ return;
+ }
+
+ header += profile.has_gl_cbuf_ftou_bug ? "uvec4 " : "vec4 ";
+ header += "GetCbufIndirect(uint binding, uint offset){"
+ "switch(binding){"
+ "default:";
+
+ for (const auto& desc : info.constant_buffer_descriptors) {
+ header +=
+ fmt::format("case {}:return {}_cbuf{}[offset];", desc.index, stage_name, desc.index);
+ }
+
+ header += "}}";
+}
+
void EmitContext::DefineStorageBuffers(Bindings& bindings) {
if (info.storage_buffers_descriptors.empty()) {
return;
diff --git a/src/shader_recompiler/backend/glsl/glsl_emit_context.h b/src/shader_recompiler/backend/glsl/glsl_emit_context.h
index d9b639d29..2b13db6e6 100644
--- a/src/shader_recompiler/backend/glsl/glsl_emit_context.h
+++ b/src/shader_recompiler/backend/glsl/glsl_emit_context.h
@@ -162,6 +162,7 @@ public:
private:
void SetupExtensions();
void DefineConstantBuffers(Bindings& bindings);
+ void DefineConstantBufferIndirect();
void DefineStorageBuffers(Bindings& bindings);
void DefineGenericOutput(size_t index, u32 invocations);
void DefineHelperFunctions();
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_atomic.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_atomic.cpp
index d3cbb14a9..cb47d253c 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_atomic.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_atomic.cpp
@@ -2,6 +2,8 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <bit>
+
#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_barriers.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_barriers.cpp
index 9ce95a41b..6ecaa3937 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_barriers.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_barriers.cpp
@@ -2,10 +2,8 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
-#include "shader_recompiler/frontend/ir/modifiers.h"
namespace Shader::Backend::SPIRV {
namespace {
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_bitwise_conversion.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_bitwise_conversion.cpp
index 02d1e63f7..831c6f158 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_bitwise_conversion.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_bitwise_conversion.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp
index 5c3e1ee2b..812c3668d 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_composite.cpp
@@ -2,10 +2,8 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
-#include "shader_recompiler/frontend/ir/modifiers.h"
namespace Shader::Backend::SPIRV {
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp
index 8ea730c80..aa7082978 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp
@@ -2,10 +2,10 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <bit>
#include <tuple>
#include <utility>
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
@@ -123,34 +123,36 @@ std::optional<OutAttr> OutputAttrPointer(EmitContext& ctx, IR::Attribute attr) {
}
Id GetCbuf(EmitContext& ctx, Id result_type, Id UniformDefinitions::*member_ptr, u32 element_size,
- const IR::Value& binding, const IR::Value& offset) {
+ const IR::Value& binding, const IR::Value& offset, const Id indirect_func) {
+ Id buffer_offset;
+ const Id uniform_type{ctx.uniform_types.*member_ptr};
+ if (offset.IsImmediate()) {
+ // Hardware been proved to read the aligned offset (e.g. LDC.U32 at 6 will read offset 4)
+ const Id imm_offset{ctx.Const(offset.U32() / element_size)};
+ buffer_offset = imm_offset;
+ } else if (element_size > 1) {
+ const u32 log2_element_size{static_cast<u32>(std::countr_zero(element_size))};
+ const Id shift{ctx.Const(log2_element_size)};
+ buffer_offset = ctx.OpShiftRightArithmetic(ctx.U32[1], ctx.Def(offset), shift);
+ } else {
+ buffer_offset = ctx.Def(offset);
+ }
if (!binding.IsImmediate()) {
- throw NotImplementedException("Constant buffer indexing");
+ return ctx.OpFunctionCall(result_type, indirect_func, ctx.Def(binding), buffer_offset);
}
const Id cbuf{ctx.cbufs[binding.U32()].*member_ptr};
- const Id uniform_type{ctx.uniform_types.*member_ptr};
- if (!offset.IsImmediate()) {
- Id index{ctx.Def(offset)};
- if (element_size > 1) {
- const u32 log2_element_size{static_cast<u32>(std::countr_zero(element_size))};
- const Id shift{ctx.Const(log2_element_size)};
- index = ctx.OpShiftRightArithmetic(ctx.U32[1], ctx.Def(offset), shift);
- }
- const Id access_chain{ctx.OpAccessChain(uniform_type, cbuf, ctx.u32_zero_value, index)};
- return ctx.OpLoad(result_type, access_chain);
- }
- // Hardware been proved to read the aligned offset (e.g. LDC.U32 at 6 will read offset 4)
- const Id imm_offset{ctx.Const(offset.U32() / element_size)};
- const Id access_chain{ctx.OpAccessChain(uniform_type, cbuf, ctx.u32_zero_value, imm_offset)};
+ const Id access_chain{ctx.OpAccessChain(uniform_type, cbuf, ctx.u32_zero_value, buffer_offset)};
return ctx.OpLoad(result_type, access_chain);
}
Id GetCbufU32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset) {
- return GetCbuf(ctx, ctx.U32[1], &UniformDefinitions::U32, sizeof(u32), binding, offset);
+ return GetCbuf(ctx, ctx.U32[1], &UniformDefinitions::U32, sizeof(u32), binding, offset,
+ ctx.load_const_func_u32);
}
Id GetCbufU32x4(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset) {
- return GetCbuf(ctx, ctx.U32[4], &UniformDefinitions::U32x4, sizeof(u32[4]), binding, offset);
+ return GetCbuf(ctx, ctx.U32[4], &UniformDefinitions::U32x4, sizeof(u32[4]), binding, offset,
+ ctx.load_const_func_u32x4);
}
Id GetCbufElement(EmitContext& ctx, Id vector, const IR::Value& offset, u32 index_offset) {
@@ -201,7 +203,8 @@ void EmitGetIndirectBranchVariable(EmitContext&) {
Id EmitGetCbufU8(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset) {
if (ctx.profile.support_descriptor_aliasing && ctx.profile.support_int8) {
- const Id load{GetCbuf(ctx, ctx.U8, &UniformDefinitions::U8, sizeof(u8), binding, offset)};
+ const Id load{GetCbuf(ctx, ctx.U8, &UniformDefinitions::U8, sizeof(u8), binding, offset,
+ ctx.load_const_func_u8)};
return ctx.OpUConvert(ctx.U32[1], load);
}
Id element{};
@@ -217,7 +220,8 @@ Id EmitGetCbufU8(EmitContext& ctx, const IR::Value& binding, const IR::Value& of
Id EmitGetCbufS8(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset) {
if (ctx.profile.support_descriptor_aliasing && ctx.profile.support_int8) {
- const Id load{GetCbuf(ctx, ctx.S8, &UniformDefinitions::S8, sizeof(s8), binding, offset)};
+ const Id load{GetCbuf(ctx, ctx.S8, &UniformDefinitions::S8, sizeof(s8), binding, offset,
+ ctx.load_const_func_u8)};
return ctx.OpSConvert(ctx.U32[1], load);
}
Id element{};
@@ -233,8 +237,8 @@ Id EmitGetCbufS8(EmitContext& ctx, const IR::Value& binding, const IR::Value& of
Id EmitGetCbufU16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset) {
if (ctx.profile.support_descriptor_aliasing && ctx.profile.support_int16) {
- const Id load{
- GetCbuf(ctx, ctx.U16, &UniformDefinitions::U16, sizeof(u16), binding, offset)};
+ const Id load{GetCbuf(ctx, ctx.U16, &UniformDefinitions::U16, sizeof(u16), binding, offset,
+ ctx.load_const_func_u16)};
return ctx.OpUConvert(ctx.U32[1], load);
}
Id element{};
@@ -250,8 +254,8 @@ Id EmitGetCbufU16(EmitContext& ctx, const IR::Value& binding, const IR::Value& o
Id EmitGetCbufS16(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset) {
if (ctx.profile.support_descriptor_aliasing && ctx.profile.support_int16) {
- const Id load{
- GetCbuf(ctx, ctx.S16, &UniformDefinitions::S16, sizeof(s16), binding, offset)};
+ const Id load{GetCbuf(ctx, ctx.S16, &UniformDefinitions::S16, sizeof(s16), binding, offset,
+ ctx.load_const_func_u16)};
return ctx.OpSConvert(ctx.U32[1], load);
}
Id element{};
@@ -276,7 +280,8 @@ Id EmitGetCbufU32(EmitContext& ctx, const IR::Value& binding, const IR::Value& o
Id EmitGetCbufF32(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset) {
if (ctx.profile.support_descriptor_aliasing) {
- return GetCbuf(ctx, ctx.F32[1], &UniformDefinitions::F32, sizeof(f32), binding, offset);
+ return GetCbuf(ctx, ctx.F32[1], &UniformDefinitions::F32, sizeof(f32), binding, offset,
+ ctx.load_const_func_f32);
} else {
const Id vector{GetCbufU32x4(ctx, binding, offset)};
return ctx.OpBitcast(ctx.F32[1], GetCbufElement(ctx, vector, offset, 0u));
@@ -285,8 +290,8 @@ Id EmitGetCbufF32(EmitContext& ctx, const IR::Value& binding, const IR::Value& o
Id EmitGetCbufU32x2(EmitContext& ctx, const IR::Value& binding, const IR::Value& offset) {
if (ctx.profile.support_descriptor_aliasing) {
- return GetCbuf(ctx, ctx.U32[2], &UniformDefinitions::U32x2, sizeof(u32[2]), binding,
- offset);
+ return GetCbuf(ctx, ctx.U32[2], &UniformDefinitions::U32x2, sizeof(u32[2]), binding, offset,
+ ctx.load_const_func_u32x2);
} else {
const Id vector{GetCbufU32x4(ctx, binding, offset)};
return ctx.OpCompositeConstruct(ctx.U32[2], GetCbufElement(ctx, vector, offset, 0u),
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp
index 1eca3aa85..d1afd47b8 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_control_flow.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp
index 832de2452..137a0e257 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp
index 0cdc46495..9f65fa269 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
#include "shader_recompiler/frontend/ir/modifiers.h"
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_image_atomic.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_image_atomic.cpp
index a96190bc6..727ac2027 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_image_atomic.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_image_atomic.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
#include "shader_recompiler/frontend/ir/modifiers.h"
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_integer.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_integer.cpp
index 44521f539..45a384e46 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_integer.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_integer.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_logical.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_logical.cpp
index 47745f7ee..74b6efe01 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_logical.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_logical.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_select.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_select.cpp
index 48caf1ffc..ce55cd31c 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_select.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_select.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_shared_memory.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_shared_memory.cpp
index 330c9052c..b57c66828 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_shared_memory.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_shared_memory.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_undefined.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_undefined.cpp
index b5766fc52..00c6e86e2 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_undefined.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_undefined.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_warp.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_warp.cpp
index 7034228bf..905c735ad 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_warp.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_warp.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/backend/spirv/emit_spirv_instructions.h"
#include "shader_recompiler/backend/spirv/spirv_emit_context.h"
diff --git a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
index cd90c084a..9c83cd2e4 100644
--- a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
+++ b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
@@ -4,8 +4,8 @@
#include <algorithm>
#include <array>
+#include <bit>
#include <climits>
-#include <string_view>
#include <boost/container/static_vector.hpp>
@@ -464,6 +464,7 @@ EmitContext::EmitContext(const Profile& profile_, const RuntimeInfo& runtime_inf
DefineSharedMemory(program);
DefineSharedMemoryFunctions(program);
DefineConstantBuffers(program.info, uniform_binding);
+ DefineConstantBufferIndirectFunctions(program.info);
DefineStorageBuffers(program.info, storage_binding);
DefineTextureBuffers(program.info, texture_binding);
DefineImageBuffers(program.info, image_binding);
@@ -993,7 +994,7 @@ void EmitContext::DefineConstantBuffers(const Info& info, u32& binding) {
}
return;
}
- IR::Type types{info.used_constant_buffer_types};
+ IR::Type types{info.used_constant_buffer_types | info.used_indirect_cbuf_types};
if (True(types & IR::Type::U8)) {
if (profile.support_int8) {
DefineConstBuffers(*this, info, &UniformDefinitions::U8, binding, U8, 'u', sizeof(u8));
@@ -1027,6 +1028,63 @@ void EmitContext::DefineConstantBuffers(const Info& info, u32& binding) {
binding += static_cast<u32>(info.constant_buffer_descriptors.size());
}
+void EmitContext::DefineConstantBufferIndirectFunctions(const Info& info) {
+ if (!info.uses_cbuf_indirect) {
+ return;
+ }
+ const auto make_accessor{[&](Id buffer_type, Id UniformDefinitions::*member_ptr) {
+ const Id func_type{TypeFunction(buffer_type, U32[1], U32[1])};
+ const Id func{OpFunction(buffer_type, spv::FunctionControlMask::MaskNone, func_type)};
+ const Id binding{OpFunctionParameter(U32[1])};
+ const Id offset{OpFunctionParameter(U32[1])};
+
+ AddLabel();
+
+ const Id merge_label{OpLabel()};
+ const Id uniform_type{uniform_types.*member_ptr};
+
+ std::array<Id, Info::MAX_INDIRECT_CBUFS> buf_labels;
+ std::array<Sirit::Literal, Info::MAX_INDIRECT_CBUFS> buf_literals;
+ for (u32 i = 0; i < Info::MAX_INDIRECT_CBUFS; i++) {
+ buf_labels[i] = OpLabel();
+ buf_literals[i] = Sirit::Literal{i};
+ }
+ OpSelectionMerge(merge_label, spv::SelectionControlMask::MaskNone);
+ OpSwitch(binding, buf_labels[0], buf_literals, buf_labels);
+ for (u32 i = 0; i < Info::MAX_INDIRECT_CBUFS; i++) {
+ AddLabel(buf_labels[i]);
+ const Id cbuf{cbufs[i].*member_ptr};
+ const Id access_chain{OpAccessChain(uniform_type, cbuf, u32_zero_value, offset)};
+ const Id result{OpLoad(buffer_type, access_chain)};
+ OpReturnValue(result);
+ }
+ AddLabel(merge_label);
+ OpUnreachable();
+ OpFunctionEnd();
+ return func;
+ }};
+ IR::Type types{info.used_indirect_cbuf_types};
+ bool supports_aliasing = profile.support_descriptor_aliasing;
+ if (supports_aliasing && True(types & IR::Type::U8)) {
+ load_const_func_u8 = make_accessor(U8, &UniformDefinitions::U8);
+ }
+ if (supports_aliasing && True(types & IR::Type::U16)) {
+ load_const_func_u16 = make_accessor(U16, &UniformDefinitions::U16);
+ }
+ if (supports_aliasing && True(types & IR::Type::F32)) {
+ load_const_func_f32 = make_accessor(F32[1], &UniformDefinitions::F32);
+ }
+ if (supports_aliasing && True(types & IR::Type::U32)) {
+ load_const_func_u32 = make_accessor(U32[1], &UniformDefinitions::U32);
+ }
+ if (supports_aliasing && True(types & IR::Type::U32x2)) {
+ load_const_func_u32x2 = make_accessor(U32[2], &UniformDefinitions::U32x2);
+ }
+ if (!supports_aliasing || True(types & IR::Type::U32x4)) {
+ load_const_func_u32x4 = make_accessor(U32[4], &UniformDefinitions::U32x4);
+ }
+}
+
void EmitContext::DefineStorageBuffers(const Info& info, u32& binding) {
if (info.storage_buffers_descriptors.empty()) {
return;
diff --git a/src/shader_recompiler/backend/spirv/spirv_emit_context.h b/src/shader_recompiler/backend/spirv/spirv_emit_context.h
index f87138f7e..b9115a405 100644
--- a/src/shader_recompiler/backend/spirv/spirv_emit_context.h
+++ b/src/shader_recompiler/backend/spirv/spirv_emit_context.h
@@ -5,7 +5,6 @@
#pragma once
#include <array>
-#include <string_view>
#include <sirit/sirit.h>
@@ -294,6 +293,13 @@ public:
std::vector<Id> interfaces;
+ Id load_const_func_u8{};
+ Id load_const_func_u16{};
+ Id load_const_func_u32{};
+ Id load_const_func_f32{};
+ Id load_const_func_u32x2{};
+ Id load_const_func_u32x4{};
+
private:
void DefineCommonTypes(const Info& info);
void DefineCommonConstants();
@@ -302,6 +308,7 @@ private:
void DefineSharedMemory(const IR::Program& program);
void DefineSharedMemoryFunctions(const IR::Program& program);
void DefineConstantBuffers(const Info& info, u32& binding);
+ void DefineConstantBufferIndirectFunctions(const Info& info);
void DefineStorageBuffers(const Info& info, u32& binding);
void DefineTextureBuffers(const Info& info, u32& binding);
void DefineImageBuffers(const Info& info, u32& binding);
diff --git a/src/shader_recompiler/exception.h b/src/shader_recompiler/exception.h
index d98b6029b..a6aecde3e 100644
--- a/src/shader_recompiler/exception.h
+++ b/src/shader_recompiler/exception.h
@@ -6,7 +6,6 @@
#include <exception>
#include <string>
-#include <string_view>
#include <utility>
#include "common/logging/formatter.h"
diff --git a/src/shader_recompiler/frontend/ir/basic_block.cpp b/src/shader_recompiler/frontend/ir/basic_block.cpp
index 974efa4a0..a1472cb76 100644
--- a/src/shader_recompiler/frontend/ir/basic_block.cpp
+++ b/src/shader_recompiler/frontend/ir/basic_block.cpp
@@ -5,9 +5,7 @@
#include <algorithm>
#include <initializer_list>
#include <map>
-#include <memory>
-#include "common/bit_cast.h"
#include "common/common_types.h"
#include "shader_recompiler/frontend/ir/basic_block.h"
#include "shader_recompiler/frontend/ir/value.h"
diff --git a/src/shader_recompiler/frontend/ir/condition.h b/src/shader_recompiler/frontend/ir/condition.h
index aa8597c60..2f8c10e71 100644
--- a/src/shader_recompiler/frontend/ir/condition.h
+++ b/src/shader_recompiler/frontend/ir/condition.h
@@ -4,7 +4,6 @@
#pragma once
-#include <compare>
#include <string>
#include <fmt/format.h>
diff --git a/src/shader_recompiler/frontend/ir/microinstruction.cpp b/src/shader_recompiler/frontend/ir/microinstruction.cpp
index 631446cf7..4a2564f47 100644
--- a/src/shader_recompiler/frontend/ir/microinstruction.cpp
+++ b/src/shader_recompiler/frontend/ir/microinstruction.cpp
@@ -326,6 +326,11 @@ void Inst::AddPhiOperand(Block* predecessor, const Value& value) {
phi_args.emplace_back(predecessor, value);
}
+void Inst::ErasePhiOperand(size_t index) {
+ const auto operand_it{phi_args.begin() + static_cast<ptrdiff_t>(index)};
+ phi_args.erase(operand_it);
+}
+
void Inst::OrderPhiArgs() {
if (op != Opcode::Phi) {
throw LogicError("{} is not a Phi instruction", op);
diff --git a/src/shader_recompiler/frontend/ir/opcodes.cpp b/src/shader_recompiler/frontend/ir/opcodes.cpp
index 24d024ad7..5baa6792f 100644
--- a/src/shader_recompiler/frontend/ir/opcodes.cpp
+++ b/src/shader_recompiler/frontend/ir/opcodes.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <string_view>
-
#include "shader_recompiler/frontend/ir/opcodes.h"
namespace Shader::IR {
diff --git a/src/shader_recompiler/frontend/ir/opcodes.h b/src/shader_recompiler/frontend/ir/opcodes.h
index 9ab108292..85f7aac02 100644
--- a/src/shader_recompiler/frontend/ir/opcodes.h
+++ b/src/shader_recompiler/frontend/ir/opcodes.h
@@ -6,7 +6,6 @@
#include <algorithm>
#include <array>
-#include <string_view>
#include <fmt/format.h>
diff --git a/src/shader_recompiler/frontend/ir/value.cpp b/src/shader_recompiler/frontend/ir/value.cpp
index d365ea1bc..0248d9c6e 100644
--- a/src/shader_recompiler/frontend/ir/value.cpp
+++ b/src/shader_recompiler/frontend/ir/value.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "shader_recompiler/frontend/ir/opcodes.h"
#include "shader_recompiler/frontend/ir/value.h"
namespace Shader::IR {
diff --git a/src/shader_recompiler/frontend/ir/value.h b/src/shader_recompiler/frontend/ir/value.h
index 947579852..14f6e55bc 100644
--- a/src/shader_recompiler/frontend/ir/value.h
+++ b/src/shader_recompiler/frontend/ir/value.h
@@ -179,9 +179,13 @@ public:
/// Get a pointer to the block of a phi argument.
[[nodiscard]] Block* PhiBlock(size_t index) const;
+
/// Add phi operand to a phi instruction.
void AddPhiOperand(Block* predecessor, const Value& value);
+ // Erase the phi operand at the given index.
+ void ErasePhiOperand(size_t index);
+
/// Orders the Phi arguments from farthest away to nearest.
void OrderPhiArgs();
diff --git a/src/shader_recompiler/frontend/maxwell/control_flow.h b/src/shader_recompiler/frontend/maxwell/control_flow.h
index a6bd3e196..7e91fac46 100644
--- a/src/shader_recompiler/frontend/maxwell/control_flow.h
+++ b/src/shader_recompiler/frontend/maxwell/control_flow.h
@@ -4,7 +4,6 @@
#pragma once
-#include <compare>
#include <optional>
#include <span>
#include <string>
@@ -15,6 +14,7 @@
#include "shader_recompiler/environment.h"
#include "shader_recompiler/frontend/ir/condition.h"
+#include "shader_recompiler/frontend/ir/reg.h"
#include "shader_recompiler/frontend/maxwell/instruction.h"
#include "shader_recompiler/frontend/maxwell/location.h"
#include "shader_recompiler/frontend/maxwell/opcodes.h"
diff --git a/src/shader_recompiler/frontend/maxwell/decode.cpp b/src/shader_recompiler/frontend/maxwell/decode.cpp
index 972f677dc..e688e648b 100644
--- a/src/shader_recompiler/frontend/maxwell/decode.cpp
+++ b/src/shader_recompiler/frontend/maxwell/decode.cpp
@@ -6,7 +6,6 @@
#include <array>
#include <bit>
#include <memory>
-#include <string_view>
#include "common/common_types.h"
#include "shader_recompiler/exception.h"
diff --git a/src/shader_recompiler/frontend/maxwell/indirect_branch_table_track.h b/src/shader_recompiler/frontend/maxwell/indirect_branch_table_track.h
index eee5102fa..2a23f7abf 100644
--- a/src/shader_recompiler/frontend/maxwell/indirect_branch_table_track.h
+++ b/src/shader_recompiler/frontend/maxwell/indirect_branch_table_track.h
@@ -6,7 +6,6 @@
#include <optional>
-#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/environment.h"
#include "shader_recompiler/frontend/ir/reg.h"
diff --git a/src/shader_recompiler/frontend/maxwell/instruction.h b/src/shader_recompiler/frontend/maxwell/instruction.h
index 743d68d61..57fd531f2 100644
--- a/src/shader_recompiler/frontend/maxwell/instruction.h
+++ b/src/shader_recompiler/frontend/maxwell/instruction.h
@@ -7,7 +7,6 @@
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/frontend/ir/flow_test.h"
-#include "shader_recompiler/frontend/ir/reg.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/location.h b/src/shader_recompiler/frontend/maxwell/location.h
index 26d29eae2..17107f082 100644
--- a/src/shader_recompiler/frontend/maxwell/location.h
+++ b/src/shader_recompiler/frontend/maxwell/location.h
@@ -4,9 +4,6 @@
#pragma once
-#include <compare>
-#include <iterator>
-
#include <fmt/format.h>
#include "common/common_types.h"
diff --git a/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp b/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
index 69eeaa3e6..7bad628aa 100644
--- a/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
+++ b/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
@@ -8,7 +8,6 @@
#include <unordered_map>
#include <utility>
#include <vector>
-#include <version>
#include <fmt/format.h>
@@ -17,7 +16,6 @@
#include "shader_recompiler/environment.h"
#include "shader_recompiler/frontend/ir/basic_block.h"
#include "shader_recompiler/frontend/ir/ir_emitter.h"
-#include "shader_recompiler/frontend/maxwell/decode.h"
#include "shader_recompiler/frontend/maxwell/structured_control_flow.h"
#include "shader_recompiler/frontend/maxwell/translate/translate.h"
#include "shader_recompiler/host_translate_info.h"
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/attribute_memory_to_physical.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/attribute_memory_to_physical.cpp
index fb3f00d3f..d26d0982b 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/attribute_memory_to_physical.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/attribute_memory_to_physical.cpp
@@ -4,7 +4,6 @@
#include "common/bit_field.h"
#include "common/common_types.h"
-#include "shader_recompiler/frontend/maxwell/opcodes.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/barrier_operations.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/barrier_operations.cpp
index 86e433e41..d92d4e929 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/barrier_operations.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/barrier_operations.cpp
@@ -4,8 +4,6 @@
#include "common/bit_field.h"
#include "common/common_types.h"
-#include "shader_recompiler/frontend/ir/modifiers.h"
-#include "shader_recompiler/frontend/maxwell/opcodes.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/common_funcs.h b/src/shader_recompiler/frontend/maxwell/translate/impl/common_funcs.h
index 214d0af3c..24f041a4f 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/common_funcs.h
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/common_funcs.h
@@ -4,7 +4,6 @@
#pragma once
-#include "common/common_types.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/exit_program.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/exit_program.cpp
index c2443c886..62d20ebe4 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/exit_program.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/exit_program.cpp
@@ -3,7 +3,6 @@
// Refer to the license.txt file included.
#include "common/common_types.h"
-#include "shader_recompiler/exception.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
namespace Shader::Maxwell {
@@ -12,9 +11,13 @@ void ExitFragment(TranslatorVisitor& v) {
const ProgramHeader sph{v.env.SPH()};
IR::Reg src_reg{IR::Reg::R0};
for (u32 render_target = 0; render_target < 8; ++render_target) {
+ if (!sph.ps.HasOutputComponents(render_target)) {
+ continue;
+ }
const std::array<bool, 4> mask{sph.ps.EnabledOutputComponents(render_target)};
for (u32 component = 0; component < 4; ++component) {
if (!mask[component]) {
+ ++src_reg;
continue;
}
v.ir.SetFragColor(render_target, component, v.F(src_reg));
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_multi_function.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_multi_function.cpp
index 2f8605619..bb8512400 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_multi_function.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/floating_point_multi_function.cpp
@@ -5,7 +5,6 @@
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/exception.h"
-#include "shader_recompiler/frontend/maxwell/opcodes.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_helper.h b/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_helper.h
index 59da56a7e..c5e80a559 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_helper.h
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_helper.h
@@ -6,8 +6,6 @@
#include "common/common_types.h"
#include "shader_recompiler/exception.h"
-#include "shader_recompiler/frontend/maxwell/translate/impl/common_encoding.h"
-#include "shader_recompiler/frontend/maxwell/translate/impl/common_funcs.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_set.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_set.cpp
index cca5b831f..01bc9c49f 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_set.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_set.cpp
@@ -2,6 +2,7 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include "shader_recompiler/frontend/maxwell/translate/impl/common_funcs.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_helper.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_set_predicate.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_set_predicate.cpp
index b3931dae3..2b9c4fc0f 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_set_predicate.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_set_predicate.cpp
@@ -2,6 +2,7 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include "shader_recompiler/frontend/maxwell/translate/impl/common_funcs.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/half_floating_point_helper.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/load_constant.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/load_constant.cpp
index 2300088e3..8007a4d46 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/load_constant.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/load_constant.cpp
@@ -11,10 +11,20 @@ namespace Shader::Maxwell {
using namespace LDC;
namespace {
std::pair<IR::U32, IR::U32> Slot(IR::IREmitter& ir, Mode mode, const IR::U32& imm_index,
- const IR::U32& reg, const IR::U32& imm) {
+ const IR::U32& reg, const IR::U32& imm_offset) {
switch (mode) {
case Mode::Default:
- return {imm_index, ir.IAdd(reg, imm)};
+ return {imm_index, ir.IAdd(reg, imm_offset)};
+ case Mode::IS: {
+ // Segmented addressing mode
+ // Ra+imm_offset points into a flat mapping of const buffer
+ // address space
+ const IR::U32 address{ir.IAdd(reg, imm_offset)};
+ const IR::U32 index{ir.BitFieldExtract(address, ir.Imm32(16), ir.Imm32(16))};
+ const IR::U32 offset{ir.BitFieldExtract(address, ir.Imm32(0), ir.Imm32(16))};
+
+ return {ir.IAdd(index, imm_index), offset};
+ }
default:
break;
}
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/load_store_attribute.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/load_store_attribute.cpp
index 924fb7a40..00d1d8438 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/load_store_attribute.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/load_store_attribute.cpp
@@ -6,7 +6,6 @@
#include "common/common_types.h"
#include "shader_recompiler/exception.h"
#include "shader_recompiler/frontend/ir/ir_emitter.h"
-#include "shader_recompiler/frontend/maxwell/opcodes.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/load_store_memory.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/load_store_memory.cpp
index 36c5cff2f..4792cd4a5 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/load_store_memory.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/load_store_memory.cpp
@@ -5,7 +5,6 @@
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/exception.h"
-#include "shader_recompiler/frontend/maxwell/opcodes.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/move_register.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/move_register.cpp
index 6bb08db8a..c317e14c9 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/move_register.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/move_register.cpp
@@ -5,7 +5,6 @@
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/exception.h"
-#include "shader_recompiler/frontend/maxwell/opcodes.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/surface_atomic_operations.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/surface_atomic_operations.cpp
index 63b588ad4..100c94c19 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/surface_atomic_operations.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/surface_atomic_operations.cpp
@@ -2,9 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <array>
-#include <bit>
-
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/frontend/ir/modifiers.h"
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_fetch_swizzled.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_fetch_swizzled.cpp
index 154e7f1a1..00dbcd86f 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_fetch_swizzled.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_fetch_swizzled.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <utility>
-
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/frontend/ir/modifiers.h"
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather.cpp
index 218cbc1a8..959c63ba9 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <optional>
-
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/frontend/ir/modifiers.h"
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather_swizzled.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather_swizzled.cpp
index 34efa2d50..86e68a830 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather_swizzled.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gather_swizzled.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <utility>
-
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/frontend/ir/modifiers.h"
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gradient.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gradient.cpp
index c3fe3ffda..6f4feff11 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gradient.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_gradient.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <optional>
-
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/frontend/ir/modifiers.h"
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_load.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_load.cpp
index 983058303..60732215b 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_load.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_load.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <optional>
-
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/frontend/ir/modifiers.h"
@@ -134,7 +132,7 @@ void Impl(TranslatorVisitor& v, u64 insn, bool is_bindless) {
multisample = v.X(meta_reg++);
}
if (tld.clamp != 0) {
- throw NotImplementedException("TLD.CL - CLAMP is not implmented");
+ throw NotImplementedException("TLD.CL - CLAMP is not implemented");
}
IR::TextureInstInfo info{};
info.type.Assign(GetType(tld.type));
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_mipmap_level.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_mipmap_level.cpp
index aea3c0e62..f89ce1b68 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_mipmap_level.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_mipmap_level.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <optional>
-
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/frontend/ir/modifiers.h"
@@ -83,7 +81,7 @@ void Impl(TranslatorVisitor& v, u64 insn, bool is_bindless) {
} const tmml{insn};
if ((tmml.mask & 0b1100) != 0) {
- throw NotImplementedException("TMML BA results are not implmented");
+ throw NotImplementedException("TMML BA results are not implemented");
}
const IR::Value coords{MakeCoords(v, tmml.coord_reg, tmml.type)};
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_query.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_query.cpp
index 0459e5473..72131301c 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/texture_query.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/texture_query.cpp
@@ -6,7 +6,6 @@
#include "common/bit_field.h"
#include "common/common_types.h"
-#include "shader_recompiler/frontend/ir/modifiers.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
namespace Shader::Maxwell {
diff --git a/src/shader_recompiler/frontend/maxwell/translate/impl/warp_shuffle.cpp b/src/shader_recompiler/frontend/maxwell/translate/impl/warp_shuffle.cpp
index 550fed55c..f98f66940 100644
--- a/src/shader_recompiler/frontend/maxwell/translate/impl/warp_shuffle.cpp
+++ b/src/shader_recompiler/frontend/maxwell/translate/impl/warp_shuffle.cpp
@@ -2,8 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <optional>
-
#include "common/bit_field.h"
#include "common/common_types.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
diff --git a/src/shader_recompiler/frontend/maxwell/translate_program.h b/src/shader_recompiler/frontend/maxwell/translate_program.h
index eac83da9d..7b024c627 100644
--- a/src/shader_recompiler/frontend/maxwell/translate_program.h
+++ b/src/shader_recompiler/frontend/maxwell/translate_program.h
@@ -8,10 +8,13 @@
#include "shader_recompiler/frontend/ir/basic_block.h"
#include "shader_recompiler/frontend/ir/program.h"
#include "shader_recompiler/frontend/maxwell/control_flow.h"
-#include "shader_recompiler/host_translate_info.h"
#include "shader_recompiler/object_pool.h"
#include "shader_recompiler/runtime_info.h"
+namespace Shader {
+struct HostTranslateInfo;
+}
+
namespace Shader::Maxwell {
[[nodiscard]] IR::Program TranslateProgram(ObjectPool<IR::Inst>& inst_pool,
diff --git a/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp b/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
index bfd2ae650..16278faab 100644
--- a/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
+++ b/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
@@ -29,6 +29,41 @@ void AddConstantBufferDescriptor(Info& info, u32 index, u32 count) {
});
}
+void AddRegisterIndexedLdc(Info& info) {
+ info.uses_cbuf_indirect = true;
+
+ for (u32 i = 0; i < Info::MAX_INDIRECT_CBUFS; i++) {
+ AddConstantBufferDescriptor(info, i, 1);
+
+ // The shader can use any possible access size
+ info.constant_buffer_used_sizes[i] = 0x10'000;
+ }
+}
+
+u32 GetElementSize(IR::Type& used_type, Shader::IR::Opcode opcode) {
+ switch (opcode) {
+ case IR::Opcode::GetCbufU8:
+ case IR::Opcode::GetCbufS8:
+ used_type |= IR::Type::U8;
+ return 1;
+ case IR::Opcode::GetCbufU16:
+ case IR::Opcode::GetCbufS16:
+ used_type |= IR::Type::U16;
+ return 2;
+ case IR::Opcode::GetCbufU32:
+ used_type |= IR::Type::U32;
+ return 4;
+ case IR::Opcode::GetCbufF32:
+ used_type |= IR::Type::F32;
+ return 4;
+ case IR::Opcode::GetCbufU32x2:
+ used_type |= IR::Type::U32x2;
+ return 8;
+ default:
+ throw InvalidArgument("Invalid opcode {}", opcode);
+ }
+}
+
void GetPatch(Info& info, IR::Patch patch) {
if (!IR::IsGeneric(patch)) {
throw NotImplementedException("Reading non-generic patch {}", patch);
@@ -463,42 +498,18 @@ void VisitUsages(Info& info, IR::Inst& inst) {
case IR::Opcode::GetCbufU32x2: {
const IR::Value index{inst.Arg(0)};
const IR::Value offset{inst.Arg(1)};
- if (!index.IsImmediate()) {
- throw NotImplementedException("Constant buffer with non-immediate index");
- }
- AddConstantBufferDescriptor(info, index.U32(), 1);
- u32 element_size{};
- switch (inst.GetOpcode()) {
- case IR::Opcode::GetCbufU8:
- case IR::Opcode::GetCbufS8:
- info.used_constant_buffer_types |= IR::Type::U8;
- element_size = 1;
- break;
- case IR::Opcode::GetCbufU16:
- case IR::Opcode::GetCbufS16:
- info.used_constant_buffer_types |= IR::Type::U16;
- element_size = 2;
- break;
- case IR::Opcode::GetCbufU32:
- info.used_constant_buffer_types |= IR::Type::U32;
- element_size = 4;
- break;
- case IR::Opcode::GetCbufF32:
- info.used_constant_buffer_types |= IR::Type::F32;
- element_size = 4;
- break;
- case IR::Opcode::GetCbufU32x2:
- info.used_constant_buffer_types |= IR::Type::U32x2;
- element_size = 8;
- break;
- default:
- break;
- }
- u32& size{info.constant_buffer_used_sizes[index.U32()]};
- if (offset.IsImmediate()) {
- size = Common::AlignUp(std::max(size, offset.U32() + element_size), 16u);
+ if (index.IsImmediate()) {
+ AddConstantBufferDescriptor(info, index.U32(), 1);
+ u32 element_size = GetElementSize(info.used_constant_buffer_types, inst.GetOpcode());
+ u32& size{info.constant_buffer_used_sizes[index.U32()]};
+ if (offset.IsImmediate()) {
+ size = Common::AlignUp(std::max(size, offset.U32() + element_size), 16u);
+ } else {
+ size = 0x10'000;
+ }
} else {
- size = 0x10'000;
+ AddRegisterIndexedLdc(info);
+ GetElementSize(info.used_indirect_cbuf_types, inst.GetOpcode());
}
break;
}
diff --git a/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp b/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp
index c134a12bc..2a14e7f12 100644
--- a/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp
+++ b/src/shader_recompiler/ir_opt/constant_propagation_pass.cpp
@@ -8,7 +8,6 @@
#include <type_traits>
#include "common/bit_cast.h"
-#include "common/bit_util.h"
#include "shader_recompiler/exception.h"
#include "shader_recompiler/frontend/ir/ir_emitter.h"
#include "shader_recompiler/frontend/ir/value.h"
diff --git a/src/shader_recompiler/ir_opt/dead_code_elimination_pass.cpp b/src/shader_recompiler/ir_opt/dead_code_elimination_pass.cpp
index 400836301..6697fde85 100644
--- a/src/shader_recompiler/ir_opt/dead_code_elimination_pass.cpp
+++ b/src/shader_recompiler/ir_opt/dead_code_elimination_pass.cpp
@@ -2,24 +2,104 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <algorithm>
+
+#include <boost/container/small_vector.hpp>
+
#include "shader_recompiler/frontend/ir/basic_block.h"
#include "shader_recompiler/frontend/ir/value.h"
#include "shader_recompiler/ir_opt/passes.h"
namespace Shader::Optimization {
-
-void DeadCodeEliminationPass(IR::Program& program) {
+namespace {
+template <bool TEST_USES>
+void DeadInstElimination(IR::Block* const block) {
// We iterate over the instructions in reverse order.
// This is because removing an instruction reduces the number of uses for earlier instructions.
- for (IR::Block* const block : program.post_order_blocks) {
- auto it{block->end()};
- while (it != block->begin()) {
- --it;
- if (!it->HasUses() && !it->MayHaveSideEffects()) {
- it->Invalidate();
- it = block->Instructions().erase(it);
+ auto it{block->end()};
+ while (it != block->begin()) {
+ --it;
+ if constexpr (TEST_USES) {
+ if (it->HasUses() || it->MayHaveSideEffects()) {
+ continue;
+ }
+ }
+ it->Invalidate();
+ it = block->Instructions().erase(it);
+ }
+}
+
+void DeletedPhiArgElimination(IR::Program& program, std::span<const IR::Block*> dead_blocks) {
+ for (IR::Block* const block : program.blocks) {
+ for (IR::Inst& phi : *block) {
+ if (!IR::IsPhi(phi)) {
+ continue;
+ }
+ for (size_t i = 0; i < phi.NumArgs(); ++i) {
+ if (std::ranges::find(dead_blocks, phi.PhiBlock(i)) == dead_blocks.end()) {
+ continue;
+ }
+ // Phi operand at this index is an unreachable block
+ phi.ErasePhiOperand(i);
+ --i;
+ }
+ }
+ }
+}
+
+void DeadBranchElimination(IR::Program& program) {
+ boost::container::small_vector<const IR::Block*, 3> dead_blocks;
+ const auto begin_it{program.syntax_list.begin()};
+ for (auto node_it = begin_it; node_it != program.syntax_list.end(); ++node_it) {
+ if (node_it->type != IR::AbstractSyntaxNode::Type::If) {
+ continue;
+ }
+ IR::Inst* const cond_ref{node_it->data.if_node.cond.Inst()};
+ const IR::U1 cond{cond_ref->Arg(0)};
+ if (!cond.IsImmediate()) {
+ continue;
+ }
+ if (cond.U1()) {
+ continue;
+ }
+ // False immediate condition. Remove condition ref, erase the entire branch.
+ cond_ref->Invalidate();
+ // Account for nested if-statements within the if(false) branch
+ u32 nested_ifs{1u};
+ while (node_it->type != IR::AbstractSyntaxNode::Type::EndIf || nested_ifs > 0) {
+ node_it = program.syntax_list.erase(node_it);
+ switch (node_it->type) {
+ case IR::AbstractSyntaxNode::Type::If:
+ ++nested_ifs;
+ break;
+ case IR::AbstractSyntaxNode::Type::EndIf:
+ --nested_ifs;
+ break;
+ case IR::AbstractSyntaxNode::Type::Block: {
+ IR::Block* const block{node_it->data.block};
+ DeadInstElimination<false>(block);
+ dead_blocks.push_back(block);
+ break;
+ }
+ default:
+ break;
}
}
+ // Erase EndIf node of the if(false) branch
+ node_it = program.syntax_list.erase(node_it);
+ // Account for loop increment
+ --node_it;
+ }
+ if (!dead_blocks.empty()) {
+ DeletedPhiArgElimination(program, std::span(dead_blocks.data(), dead_blocks.size()));
+ }
+}
+} // namespace
+
+void DeadCodeEliminationPass(IR::Program& program) {
+ DeadBranchElimination(program);
+ for (IR::Block* const block : program.post_order_blocks) {
+ DeadInstElimination<true>(block);
}
}
diff --git a/src/shader_recompiler/ir_opt/global_memory_to_storage_buffer_pass.cpp b/src/shader_recompiler/ir_opt/global_memory_to_storage_buffer_pass.cpp
index ddf497e32..3cc1cc07a 100644
--- a/src/shader_recompiler/ir_opt/global_memory_to_storage_buffer_pass.cpp
+++ b/src/shader_recompiler/ir_opt/global_memory_to_storage_buffer_pass.cpp
@@ -2,10 +2,7 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <algorithm>
-#include <compare>
#include <optional>
-#include <queue>
#include <boost/container/flat_set.hpp>
#include <boost/container/small_vector.hpp>
diff --git a/src/shader_recompiler/ir_opt/lower_fp16_to_fp32.cpp b/src/shader_recompiler/ir_opt/lower_fp16_to_fp32.cpp
index 773e1f961..622f94fc7 100644
--- a/src/shader_recompiler/ir_opt/lower_fp16_to_fp32.cpp
+++ b/src/shader_recompiler/ir_opt/lower_fp16_to_fp32.cpp
@@ -2,9 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <algorithm>
-
-#include "shader_recompiler/frontend/ir/ir_emitter.h"
#include "shader_recompiler/frontend/ir/value.h"
#include "shader_recompiler/ir_opt/passes.h"
diff --git a/src/shader_recompiler/ir_opt/passes.h b/src/shader_recompiler/ir_opt/passes.h
index f877c7ba0..16ea3d80a 100644
--- a/src/shader_recompiler/ir_opt/passes.h
+++ b/src/shader_recompiler/ir_opt/passes.h
@@ -4,10 +4,7 @@
#pragma once
-#include <span>
-
#include "shader_recompiler/environment.h"
-#include "shader_recompiler/frontend/ir/basic_block.h"
#include "shader_recompiler/frontend/ir/program.h"
namespace Shader::Optimization {
diff --git a/src/shader_recompiler/ir_opt/rescaling_pass.cpp b/src/shader_recompiler/ir_opt/rescaling_pass.cpp
index 496d4667e..75679c793 100644
--- a/src/shader_recompiler/ir_opt/rescaling_pass.cpp
+++ b/src/shader_recompiler/ir_opt/rescaling_pass.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include "common/alignment.h"
#include "common/settings.h"
#include "shader_recompiler/environment.h"
#include "shader_recompiler/frontend/ir/ir_emitter.h"
diff --git a/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp b/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp
index 87aa09358..928557acb 100644
--- a/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp
+++ b/src/shader_recompiler/ir_opt/ssa_rewrite_pass.cpp
@@ -20,7 +20,6 @@
#include <vector>
#include <boost/container/flat_map.hpp>
-#include <boost/container/flat_set.hpp>
#include "shader_recompiler/frontend/ir/basic_block.h"
#include "shader_recompiler/frontend/ir/opcodes.h"
diff --git a/src/shader_recompiler/program_header.h b/src/shader_recompiler/program_header.h
index bd6c2bfb5..0cd6597ef 100644
--- a/src/shader_recompiler/program_header.h
+++ b/src/shader_recompiler/program_header.h
@@ -196,6 +196,11 @@ struct ProgramHeader {
return {(bits & 1) != 0, (bits & 2) != 0, (bits & 4) != 0, (bits & 8) != 0};
}
+ [[nodiscard]] bool HasOutputComponents(u32 rt) const noexcept {
+ const u32 bits{omap.target >> (rt * 4)};
+ return (bits & 0xf) != 0;
+ }
+
[[nodiscard]] std::array<PixelImap, 4> GenericInputMap(u32 attribute) const {
const auto& vector{imap_generic_vector[attribute]};
return {vector.x, vector.y, vector.z, vector.w};
diff --git a/src/shader_recompiler/runtime_info.h b/src/shader_recompiler/runtime_info.h
index f3f83a258..722e9d729 100644
--- a/src/shader_recompiler/runtime_info.h
+++ b/src/shader_recompiler/runtime_info.h
@@ -5,7 +5,6 @@
#pragma once
#include <array>
-#include <bitset>
#include <optional>
#include <vector>
diff --git a/src/shader_recompiler/shader_info.h b/src/shader_recompiler/shader_info.h
index 9f375c30e..a3a09c71c 100644
--- a/src/shader_recompiler/shader_info.h
+++ b/src/shader_recompiler/shader_info.h
@@ -105,6 +105,7 @@ struct ImageDescriptor {
using ImageDescriptors = boost::container::small_vector<ImageDescriptor, 4>;
struct Info {
+ static constexpr size_t MAX_INDIRECT_CBUFS{14};
static constexpr size_t MAX_CBUFS{18};
static constexpr size_t MAX_SSBOS{32};
@@ -173,9 +174,11 @@ struct Info {
bool uses_atomic_image_u32{};
bool uses_shadow_lod{};
bool uses_rescaling_uniform{};
+ bool uses_cbuf_indirect{};
IR::Type used_constant_buffer_types{};
IR::Type used_storage_buffer_types{};
+ IR::Type used_indirect_cbuf_types{};
u32 constant_buffer_mask{};
std::array<u32, MAX_CBUFS> constant_buffer_used_sizes{};
diff --git a/src/video_core/buffer_cache/buffer_base.h b/src/video_core/buffer_cache/buffer_base.h
index be2113f5a..10975884b 100644
--- a/src/video_core/buffer_cache/buffer_base.h
+++ b/src/video_core/buffer_cache/buffer_base.h
@@ -212,7 +212,7 @@ public:
void FlushCachedWrites() noexcept {
flags &= ~BufferFlagBits::CachedWrites;
const u64 num_words = NumWords();
- const u64* const cached_words = Array<Type::CachedCPU>();
+ u64* const cached_words = Array<Type::CachedCPU>();
u64* const untracked_words = Array<Type::Untracked>();
u64* const cpu_words = Array<Type::CPU>();
for (u64 word_index = 0; word_index < num_words; ++word_index) {
@@ -220,6 +220,7 @@ public:
NotifyRasterizer<false>(word_index, untracked_words[word_index], cached_bits);
untracked_words[word_index] |= cached_bits;
cpu_words[word_index] |= cached_bits;
+ cached_words[word_index] = 0;
}
}
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h
index fa26eb8b0..21bfb76a4 100644
--- a/src/video_core/buffer_cache/buffer_cache.h
+++ b/src/video_core/buffer_cache/buffer_cache.h
@@ -11,7 +11,6 @@
#include <mutex>
#include <numeric>
#include <span>
-#include <unordered_map>
#include <vector>
#include <boost/container/small_vector.hpp>
@@ -22,7 +21,6 @@
#include "common/literals.h"
#include "common/lru_cache.h"
#include "common/microprofile.h"
-#include "common/scope_exit.h"
#include "common/settings.h"
#include "core/memory.h"
#include "video_core/buffer_cache/buffer_base.h"
@@ -78,8 +76,9 @@ class BufferCache {
static constexpr BufferId NULL_BUFFER_ID{0};
- static constexpr u64 EXPECTED_MEMORY = 512_MiB;
- static constexpr u64 CRITICAL_MEMORY = 1_GiB;
+ static constexpr s64 DEFAULT_EXPECTED_MEMORY = 512_MiB;
+ static constexpr s64 DEFAULT_CRITICAL_MEMORY = 1_GiB;
+ static constexpr s64 TARGET_THRESHOLD = 4_GiB;
using Maxwell = Tegra::Engines::Maxwell3D::Regs;
@@ -438,6 +437,8 @@ private:
Common::LeastRecentlyUsedCache<LRUItemParams> lru_cache;
u64 frame_tick = 0;
u64 total_used_memory = 0;
+ u64 minimum_memory = 0;
+ u64 critical_memory = 0;
std::array<BufferId, ((1ULL << 39) >> PAGE_BITS)> page_table;
};
@@ -453,11 +454,30 @@ BufferCache<P>::BufferCache(VideoCore::RasterizerInterface& rasterizer_,
// Ensure the first slot is used for the null buffer
void(slot_buffers.insert(runtime, NullBufferParams{}));
common_ranges.clear();
+
+ if (!runtime.CanReportMemoryUsage()) {
+ minimum_memory = DEFAULT_EXPECTED_MEMORY;
+ critical_memory = DEFAULT_CRITICAL_MEMORY;
+ return;
+ }
+
+ const s64 device_memory = static_cast<s64>(runtime.GetDeviceLocalMemory());
+ const s64 min_spacing_expected = device_memory - 1_GiB - 512_MiB;
+ const s64 min_spacing_critical = device_memory - 1_GiB;
+ const s64 mem_threshold = std::min(device_memory, TARGET_THRESHOLD);
+ const s64 min_vacancy_expected = (6 * mem_threshold) / 10;
+ const s64 min_vacancy_critical = (3 * mem_threshold) / 10;
+ minimum_memory = static_cast<u64>(
+ std::max(std::min(device_memory - min_vacancy_expected, min_spacing_expected),
+ DEFAULT_EXPECTED_MEMORY));
+ critical_memory = static_cast<u64>(
+ std::max(std::min(device_memory - min_vacancy_critical, min_spacing_critical),
+ DEFAULT_CRITICAL_MEMORY));
}
template <class P>
void BufferCache<P>::RunGarbageCollector() {
- const bool aggressive_gc = total_used_memory >= CRITICAL_MEMORY;
+ const bool aggressive_gc = total_used_memory >= critical_memory;
const u64 ticks_to_destroy = aggressive_gc ? 60 : 120;
int num_iterations = aggressive_gc ? 64 : 32;
const auto clean_up = [this, &num_iterations](BufferId buffer_id) {
@@ -488,7 +508,11 @@ void BufferCache<P>::TickFrame() {
const bool skip_preferred = hits * 256 < shots * 251;
uniform_buffer_skip_cache_size = skip_preferred ? DEFAULT_SKIP_CACHE_SIZE : 0;
- if (total_used_memory >= EXPECTED_MEMORY) {
+ // If we can obtain the memory info, use it instead of the estimate.
+ if (runtime.CanReportMemoryUsage()) {
+ total_used_memory = runtime.GetDeviceMemoryUsage();
+ }
+ if (total_used_memory >= minimum_memory) {
RunGarbageCollector();
}
++frame_tick;
@@ -1469,19 +1493,27 @@ typename BufferCache<P>::OverlapResult BufferCache<P>::ResolveOverlaps(VAddr cpu
overlap_ids.push_back(overlap_id);
overlap.Pick();
const VAddr overlap_cpu_addr = overlap.CpuAddr();
- if (overlap_cpu_addr < begin) {
+ const bool expands_left = overlap_cpu_addr < begin;
+ if (expands_left) {
cpu_addr = begin = overlap_cpu_addr;
}
- end = std::max(end, overlap_cpu_addr + overlap.SizeBytes());
-
+ const VAddr overlap_end = overlap_cpu_addr + overlap.SizeBytes();
+ const bool expands_right = overlap_end > end;
+ if (overlap_end > end) {
+ end = overlap_end;
+ }
stream_score += overlap.StreamScore();
if (stream_score > STREAM_LEAP_THRESHOLD && !has_stream_leap) {
// When this memory region has been joined a bunch of times, we assume it's being used
// as a stream buffer. Increase the size to skip constantly recreating buffers.
has_stream_leap = true;
- begin -= PAGE_SIZE * 256;
- cpu_addr = begin;
- end += PAGE_SIZE * 256;
+ if (expands_right) {
+ begin -= PAGE_SIZE * 256;
+ cpu_addr = begin;
+ }
+ if (expands_left) {
+ end += PAGE_SIZE * 256;
+ }
}
}
return OverlapResult{
diff --git a/src/video_core/cdma_pusher.cpp b/src/video_core/cdma_pusher.cpp
index a8c4b4415..8dd840558 100644
--- a/src/video_core/cdma_pusher.cpp
+++ b/src/video_core/cdma_pusher.cpp
@@ -23,11 +23,9 @@
#include "command_classes/nvdec.h"
#include "command_classes/vic.h"
#include "video_core/cdma_pusher.h"
-#include "video_core/command_classes/nvdec_common.h"
#include "video_core/command_classes/sync_manager.h"
#include "video_core/engines/maxwell_3d.h"
#include "video_core/gpu.h"
-#include "video_core/memory_manager.h"
namespace Tegra {
CDmaPusher::CDmaPusher(GPU& gpu_)
diff --git a/src/video_core/cdma_pusher.h b/src/video_core/cdma_pusher.h
index 87b49d6ea..cb1d16b71 100644
--- a/src/video_core/cdma_pusher.h
+++ b/src/video_core/cdma_pusher.h
@@ -8,6 +8,7 @@
#include <vector>
#include "common/bit_field.h"
+#include "common/common_funcs.h"
#include "common/common_types.h"
namespace Tegra {
diff --git a/src/video_core/command_classes/codecs/codec.cpp b/src/video_core/command_classes/codecs/codec.cpp
index 04d0f3a2f..40f7755e8 100644
--- a/src/video_core/command_classes/codecs/codec.cpp
+++ b/src/video_core/command_classes/codecs/codec.cpp
@@ -3,7 +3,6 @@
// Refer to the license.txt file included.
#include <algorithm>
-#include <cstdio>
#include <fstream>
#include <vector>
#include "common/assert.h"
@@ -57,6 +56,18 @@ AVPixelFormat GetGpuFormat(AVCodecContext* av_codec_ctx, const AVPixelFormat* pi
av_codec_ctx->pix_fmt = PREFERRED_CPU_FMT;
return PREFERRED_CPU_FMT;
}
+
+// List all the currently available hwcontext in ffmpeg
+std::vector<AVHWDeviceType> ListSupportedContexts() {
+ std::vector<AVHWDeviceType> contexts{};
+ AVHWDeviceType current_device_type = AV_HWDEVICE_TYPE_NONE;
+ do {
+ current_device_type = av_hwdevice_iterate_types(current_device_type);
+ contexts.push_back(current_device_type);
+ } while (current_device_type != AV_HWDEVICE_TYPE_NONE);
+ return contexts;
+}
+
} // namespace
void AVFrameDeleter(AVFrame* ptr) {
@@ -77,17 +88,6 @@ Codec::~Codec() {
av_buffer_unref(&av_gpu_decoder);
}
-// List all the currently available hwcontext in ffmpeg
-static std::vector<AVHWDeviceType> ListSupportedContexts() {
- std::vector<AVHWDeviceType> contexts{};
- AVHWDeviceType current_device_type = AV_HWDEVICE_TYPE_NONE;
- do {
- current_device_type = av_hwdevice_iterate_types(current_device_type);
- contexts.push_back(current_device_type);
- } while (current_device_type != AV_HWDEVICE_TYPE_NONE);
- return contexts;
-}
-
bool Codec::CreateGpuAvDevice() {
static constexpr auto HW_CONFIG_METHOD = AV_CODEC_HW_CONFIG_METHOD_HW_DEVICE_CTX;
static const auto supported_contexts = ListSupportedContexts();
@@ -97,6 +97,8 @@ bool Codec::CreateGpuAvDevice() {
LOG_DEBUG(Service_NVDRV, "{} explicitly unsupported", av_hwdevice_get_type_name(type));
continue;
}
+ // Avoid memory leak from not cleaning up after av_hwdevice_ctx_create
+ av_buffer_unref(&av_gpu_decoder);
const int hwdevice_res = av_hwdevice_ctx_create(&av_gpu_decoder, type, nullptr, nullptr, 0);
if (hwdevice_res < 0) {
LOG_DEBUG(Service_NVDRV, "{} av_hwdevice_ctx_create failed {}",
@@ -128,15 +130,19 @@ bool Codec::CreateGpuAvDevice() {
av_codec->name, av_hwdevice_get_type_name(type));
break;
}
- if (config->methods & HW_CONFIG_METHOD && config->device_type == type) {
- av_codec_ctx->pix_fmt = config->pix_fmt;
- if (config->methods & AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX) {
+ if ((config->methods & HW_CONFIG_METHOD) != 0 && config->device_type == type) {
+#if defined(__unix__)
+ // Some linux decoding backends are reported to crash with this config method
+ // TODO(ameerj): Properly support this method
+ if ((config->methods & AV_CODEC_HW_CONFIG_METHOD_HW_FRAMES_CTX) != 0) {
// skip zero-copy decoders, we don't currently support them
LOG_DEBUG(Service_NVDRV, "Skipping decoder {} with unsupported capability {}.",
av_hwdevice_get_type_name(type), config->methods);
continue;
}
+#endif
LOG_INFO(Service_NVDRV, "Using {} GPU decoder", av_hwdevice_get_type_name(type));
+ av_codec_ctx->pix_fmt = config->pix_fmt;
return true;
}
}
diff --git a/src/video_core/command_classes/codecs/codec.h b/src/video_core/command_classes/codecs/codec.h
index de5672155..661673b4e 100644
--- a/src/video_core/command_classes/codecs/codec.h
+++ b/src/video_core/command_classes/codecs/codec.h
@@ -7,7 +7,7 @@
#include <memory>
#include <string_view>
#include <queue>
-#include "common/common_types.h"
+
#include "video_core/command_classes/nvdec_common.h"
extern "C" {
diff --git a/src/video_core/command_classes/codecs/vp8.cpp b/src/video_core/command_classes/codecs/vp8.cpp
index 32ad0ec16..2f280cb7c 100644
--- a/src/video_core/command_classes/codecs/vp8.cpp
+++ b/src/video_core/command_classes/codecs/vp8.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <array>
#include <vector>
#include "video_core/command_classes/codecs/vp8.h"
diff --git a/src/video_core/command_classes/codecs/vp9_types.h b/src/video_core/command_classes/codecs/vp9_types.h
index 3b1ed4b3a..af1290016 100644
--- a/src/video_core/command_classes/codecs/vp9_types.h
+++ b/src/video_core/command_classes/codecs/vp9_types.h
@@ -5,7 +5,6 @@
#pragma once
#include <array>
-#include <cstring>
#include <vector>
#include "common/common_funcs.h"
#include "common/common_types.h"
diff --git a/src/video_core/command_classes/host1x.h b/src/video_core/command_classes/host1x.h
index 7e94799dd..736d2fd0c 100644
--- a/src/video_core/command_classes/host1x.h
+++ b/src/video_core/command_classes/host1x.h
@@ -4,8 +4,6 @@
#pragma once
-#include <vector>
-#include "common/common_funcs.h"
#include "common/common_types.h"
namespace Tegra {
diff --git a/src/video_core/dma_pusher.cpp b/src/video_core/dma_pusher.cpp
index 8d28bd884..0b51e402a 100644
--- a/src/video_core/dma_pusher.cpp
+++ b/src/video_core/dma_pusher.cpp
@@ -6,7 +6,6 @@
#include "common/microprofile.h"
#include "common/settings.h"
#include "core/core.h"
-#include "core/memory.h"
#include "video_core/dma_pusher.h"
#include "video_core/engines/maxwell_3d.h"
#include "video_core/gpu.h"
diff --git a/src/video_core/engines/fermi_2d.h b/src/video_core/engines/fermi_2d.h
index d76c5ed56..4c0568c4c 100644
--- a/src/video_core/engines/fermi_2d.h
+++ b/src/video_core/engines/fermi_2d.h
@@ -9,7 +9,6 @@
#include "common/bit_field.h"
#include "common/common_funcs.h"
#include "common/common_types.h"
-#include "common/math_util.h"
#include "video_core/engines/engine_interface.h"
#include "video_core/gpu.h"
diff --git a/src/video_core/engines/kepler_compute.cpp b/src/video_core/engines/kepler_compute.cpp
index 5a1c12076..f7ff92c57 100644
--- a/src/video_core/engines/kepler_compute.cpp
+++ b/src/video_core/engines/kepler_compute.cpp
@@ -10,7 +10,6 @@
#include "video_core/engines/maxwell_3d.h"
#include "video_core/memory_manager.h"
#include "video_core/rasterizer_interface.h"
-#include "video_core/renderer_base.h"
#include "video_core/textures/decoders.h"
namespace Tegra::Engines {
diff --git a/src/video_core/engines/kepler_compute.h b/src/video_core/engines/kepler_compute.h
index f8b8d06ac..c6b8adb56 100644
--- a/src/video_core/engines/kepler_compute.h
+++ b/src/video_core/engines/kepler_compute.h
@@ -12,7 +12,6 @@
#include "common/common_types.h"
#include "video_core/engines/engine_interface.h"
#include "video_core/engines/engine_upload.h"
-#include "video_core/gpu.h"
#include "video_core/textures/texture.h"
namespace Core {
diff --git a/src/video_core/engines/kepler_memory.cpp b/src/video_core/engines/kepler_memory.cpp
index 8aed16caa..f930e02b6 100644
--- a/src/video_core/engines/kepler_memory.cpp
+++ b/src/video_core/engines/kepler_memory.cpp
@@ -9,8 +9,6 @@
#include "video_core/engines/maxwell_3d.h"
#include "video_core/memory_manager.h"
#include "video_core/rasterizer_interface.h"
-#include "video_core/renderer_base.h"
-#include "video_core/textures/decoders.h"
namespace Tegra::Engines {
diff --git a/src/video_core/engines/kepler_memory.h b/src/video_core/engines/kepler_memory.h
index 949e2fae1..4cb4a3d2d 100644
--- a/src/video_core/engines/kepler_memory.h
+++ b/src/video_core/engines/kepler_memory.h
@@ -6,13 +6,11 @@
#include <array>
#include <cstddef>
-#include <vector>
#include "common/bit_field.h"
#include "common/common_funcs.h"
#include "common/common_types.h"
#include "video_core/engines/engine_interface.h"
#include "video_core/engines/engine_upload.h"
-#include "video_core/gpu.h"
namespace Core {
class System;
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp
index 8f2fd28c2..54a902f56 100644
--- a/src/video_core/engines/maxwell_3d.cpp
+++ b/src/video_core/engines/maxwell_3d.cpp
@@ -196,7 +196,7 @@ void Maxwell3D::ProcessMethodCall(u32 method, u32 argument, u32 nonshadow_argume
case MAXWELL3D_REG_INDEX(const_buffer.cb_data) + 13:
case MAXWELL3D_REG_INDEX(const_buffer.cb_data) + 14:
case MAXWELL3D_REG_INDEX(const_buffer.cb_data) + 15:
- return StartCBData(method);
+ return ProcessCBData(argument);
case MAXWELL3D_REG_INDEX(cb_bind[0]):
return ProcessCBBind(0);
case MAXWELL3D_REG_INDEX(cb_bind[1]):
@@ -257,14 +257,6 @@ void Maxwell3D::CallMacroMethod(u32 method, const std::vector<u32>& parameters)
}
void Maxwell3D::CallMethod(u32 method, u32 method_argument, bool is_last_call) {
- if (method == cb_data_state.current) {
- regs.reg_array[method] = method_argument;
- ProcessCBData(method_argument);
- return;
- } else if (cb_data_state.current != null_cb_data) {
- FinishCBData();
- }
-
// It is an error to write to a register other than the current macro's ARG register before it
// has finished execution.
if (executing_macro != 0) {
@@ -311,7 +303,7 @@ void Maxwell3D::CallMultiMethod(u32 method, const u32* base_start, u32 amount,
case MAXWELL3D_REG_INDEX(const_buffer.cb_data) + 13:
case MAXWELL3D_REG_INDEX(const_buffer.cb_data) + 14:
case MAXWELL3D_REG_INDEX(const_buffer.cb_data) + 15:
- ProcessCBMultiData(method, base_start, amount);
+ ProcessCBMultiData(base_start, amount);
break;
default:
for (std::size_t i = 0; i < amount; i++) {
@@ -629,46 +621,7 @@ void Maxwell3D::ProcessCBBind(size_t stage_index) {
rasterizer->BindGraphicsUniformBuffer(stage_index, bind_data.index, gpu_addr, size);
}
-void Maxwell3D::ProcessCBData(u32 value) {
- const u32 id = cb_data_state.id;
- cb_data_state.buffer[id][cb_data_state.counter] = value;
- // Increment the current buffer position.
- regs.const_buffer.cb_pos = regs.const_buffer.cb_pos + 4;
- cb_data_state.counter++;
-}
-
-void Maxwell3D::StartCBData(u32 method) {
- constexpr u32 first_cb_data = MAXWELL3D_REG_INDEX(const_buffer.cb_data);
- cb_data_state.start_pos = regs.const_buffer.cb_pos;
- cb_data_state.id = method - first_cb_data;
- cb_data_state.current = method;
- cb_data_state.counter = 0;
- ProcessCBData(regs.const_buffer.cb_data[cb_data_state.id]);
-}
-
-void Maxwell3D::ProcessCBMultiData(u32 method, const u32* start_base, u32 amount) {
- if (cb_data_state.current != method) {
- if (cb_data_state.current != null_cb_data) {
- FinishCBData();
- }
- constexpr u32 first_cb_data = MAXWELL3D_REG_INDEX(const_buffer.cb_data);
- cb_data_state.start_pos = regs.const_buffer.cb_pos;
- cb_data_state.id = method - first_cb_data;
- cb_data_state.current = method;
- cb_data_state.counter = 0;
- }
- const std::size_t id = cb_data_state.id;
- const std::size_t size = amount;
- std::size_t i = 0;
- for (; i < size; i++) {
- cb_data_state.buffer[id][cb_data_state.counter] = start_base[i];
- cb_data_state.counter++;
- }
- // Increment the current buffer position.
- regs.const_buffer.cb_pos = regs.const_buffer.cb_pos + 4 * amount;
-}
-
-void Maxwell3D::FinishCBData() {
+void Maxwell3D::ProcessCBMultiData(const u32* start_base, u32 amount) {
// Write the input value to the current const buffer at the current position.
const GPUVAddr buffer_address = regs.const_buffer.BufferAddress();
ASSERT(buffer_address != 0);
@@ -676,14 +629,16 @@ void Maxwell3D::FinishCBData() {
// Don't allow writing past the end of the buffer.
ASSERT(regs.const_buffer.cb_pos <= regs.const_buffer.cb_size);
- const GPUVAddr address{buffer_address + cb_data_state.start_pos};
- const std::size_t size = regs.const_buffer.cb_pos - cb_data_state.start_pos;
+ const GPUVAddr address{buffer_address + regs.const_buffer.cb_pos};
+ const size_t copy_size = amount * sizeof(u32);
+ memory_manager.WriteBlock(address, start_base, copy_size);
- const u32 id = cb_data_state.id;
- memory_manager.WriteBlock(address, cb_data_state.buffer[id].data(), size);
+ // Increment the current buffer position.
+ regs.const_buffer.cb_pos += static_cast<u32>(copy_size);
+}
- cb_data_state.id = null_cb_data;
- cb_data_state.current = null_cb_data;
+void Maxwell3D::ProcessCBData(u32 value) {
+ ProcessCBMultiData(&value, 1);
}
Texture::TICEntry Maxwell3D::GetTICEntry(u32 tic_index) const {
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h
index 6d34da046..3f5b38e55 100644
--- a/src/video_core/engines/maxwell_3d.h
+++ b/src/video_core/engines/maxwell_3d.h
@@ -10,7 +10,6 @@
#include <limits>
#include <optional>
#include <type_traits>
-#include <unordered_map>
#include <vector>
#include "common/assert.h"
@@ -1545,10 +1544,8 @@ private:
void ProcessSyncPoint();
/// Handles a write to the CB_DATA[i] register.
- void StartCBData(u32 method);
void ProcessCBData(u32 value);
- void ProcessCBMultiData(u32 method, const u32* start_base, u32 amount);
- void FinishCBData();
+ void ProcessCBMultiData(const u32* start_base, u32 amount);
/// Handles a write to the CB_BIND register.
void ProcessCBBind(size_t stage_index);
@@ -1583,17 +1580,6 @@ private:
/// Interpreter for the macro codes uploaded to the GPU.
std::unique_ptr<MacroEngine> macro_engine;
- static constexpr u32 null_cb_data = 0xFFFFFFFF;
- struct CBDataState {
- static constexpr size_t inline_size = 0x4000;
- std::array<std::array<u32, inline_size>, 16> buffer;
- u32 current{null_cb_data};
- u32 id{null_cb_data};
- u32 start_pos{};
- u32 counter{};
- };
- CBDataState cb_data_state;
-
Upload::State upload_state;
bool execute_on{true};
diff --git a/src/video_core/engines/maxwell_dma.h b/src/video_core/engines/maxwell_dma.h
index 2692cac8a..9d0c77793 100644
--- a/src/video_core/engines/maxwell_dma.h
+++ b/src/video_core/engines/maxwell_dma.h
@@ -8,10 +8,8 @@
#include <cstddef>
#include <vector>
#include "common/bit_field.h"
-#include "common/common_funcs.h"
#include "common/common_types.h"
#include "video_core/engines/engine_interface.h"
-#include "video_core/gpu.h"
namespace Core {
class System;
diff --git a/src/video_core/fence_manager.h b/src/video_core/fence_manager.h
index 34dc6c596..f80d62c80 100644
--- a/src/video_core/fence_manager.h
+++ b/src/video_core/fence_manager.h
@@ -8,8 +8,6 @@
#include <queue>
#include "common/common_types.h"
-#include "common/settings.h"
-#include "core/core.h"
#include "video_core/delayed_destruction_ring.h"
#include "video_core/gpu.h"
#include "video_core/memory_manager.h"
diff --git a/src/video_core/framebuffer_config.h b/src/video_core/framebuffer_config.h
index b1d455e30..93349bb78 100644
--- a/src/video_core/framebuffer_config.h
+++ b/src/video_core/framebuffer_config.h
@@ -6,41 +6,22 @@
#include "common/common_types.h"
#include "common/math_util.h"
+#include "core/hle/service/nvflinger/buffer_transform_flags.h"
+#include "core/hle/service/nvflinger/pixel_format.h"
namespace Tegra {
+
/**
* Struct describing framebuffer configuration
*/
struct FramebufferConfig {
- enum class PixelFormat : u32 {
- A8B8G8R8_UNORM = 1,
- RGB565_UNORM = 4,
- B8G8R8A8_UNORM = 5,
- };
-
- enum class TransformFlags : u32 {
- /// No transform flags are set
- Unset = 0x00,
- /// Flip source image horizontally (around the vertical axis)
- FlipH = 0x01,
- /// Flip source image vertically (around the horizontal axis)
- FlipV = 0x02,
- /// Rotate source image 90 degrees clockwise
- Rotate90 = 0x04,
- /// Rotate source image 180 degrees
- Rotate180 = 0x03,
- /// Rotate source image 270 degrees clockwise
- Rotate270 = 0x07,
- };
-
VAddr address{};
u32 offset{};
u32 width{};
u32 height{};
u32 stride{};
- PixelFormat pixel_format{};
-
- TransformFlags transform_flags{};
+ Service::android::PixelFormat pixel_format{};
+ Service::android::BufferTransformFlags transform_flags{};
Common::Rectangle<int> crop_rect;
};
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp
index ba9ba082f..789af452d 100644
--- a/src/video_core/gpu.cpp
+++ b/src/video_core/gpu.cpp
@@ -230,7 +230,7 @@ struct GPU::Impl {
void IncrementSyncPoint(u32 syncpoint_id) {
auto& syncpoint = syncpoints.at(syncpoint_id);
syncpoint++;
- std::lock_guard lock{sync_mutex};
+ std::scoped_lock lock{sync_mutex};
sync_cv.notify_all();
auto& interrupt = syncpt_interrupts.at(syncpoint_id);
if (!interrupt.empty()) {
@@ -252,7 +252,7 @@ struct GPU::Impl {
}
void RegisterSyncptInterrupt(u32 syncpoint_id, u32 value) {
- std::lock_guard lock{sync_mutex};
+ std::scoped_lock lock{sync_mutex};
auto& interrupt = syncpt_interrupts.at(syncpoint_id);
bool contains = std::any_of(interrupt.begin(), interrupt.end(),
[value](u32 in_value) { return in_value == value; });
@@ -263,7 +263,7 @@ struct GPU::Impl {
}
[[nodiscard]] bool CancelSyncptInterrupt(u32 syncpoint_id, u32 value) {
- std::lock_guard lock{sync_mutex};
+ std::scoped_lock lock{sync_mutex};
auto& interrupt = syncpt_interrupts.at(syncpoint_id);
const auto iter =
std::find_if(interrupt.begin(), interrupt.end(),
diff --git a/src/video_core/gpu.h b/src/video_core/gpu.h
index 26b8ea233..97c029140 100644
--- a/src/video_core/gpu.h
+++ b/src/video_core/gpu.h
@@ -8,6 +8,7 @@
#include "common/bit_field.h"
#include "common/common_types.h"
+#include "core/hle/service/nvdrv/nvdata.h"
#include "video_core/cdma_pusher.h"
#include "video_core/framebuffer_config.h"
diff --git a/src/video_core/gpu_thread.cpp b/src/video_core/gpu_thread.cpp
index 9547f277a..4e8999915 100644
--- a/src/video_core/gpu_thread.cpp
+++ b/src/video_core/gpu_thread.cpp
@@ -56,7 +56,7 @@ static void RunThread(std::stop_token stop_token, Core::System& system,
if (next.block) {
// We have to lock the write_lock to ensure that the condition_variable wait not get a
// race between the check and the lock itself.
- std::lock_guard lk(state.write_lock);
+ std::scoped_lock lk{state.write_lock};
state.cv.notify_all();
}
}
diff --git a/src/video_core/host_shaders/CMakeLists.txt b/src/video_core/host_shaders/CMakeLists.txt
index fd3e41434..190fc6aea 100644
--- a/src/video_core/host_shaders/CMakeLists.txt
+++ b/src/video_core/host_shaders/CMakeLists.txt
@@ -14,9 +14,11 @@ set(SHADER_FILES
convert_d24s8_to_abgr8.frag
convert_depth_to_float.frag
convert_float_to_depth.frag
+ convert_s8d24_to_abgr8.frag
full_screen_triangle.vert
fxaa.frag
fxaa.vert
+ opengl_convert_s8d24.comp
opengl_copy_bc4.comp
opengl_present.frag
opengl_present.vert
diff --git a/src/video_core/host_shaders/convert_s8d24_to_abgr8.frag b/src/video_core/host_shaders/convert_s8d24_to_abgr8.frag
new file mode 100644
index 000000000..c8a1683b8
--- /dev/null
+++ b/src/video_core/host_shaders/convert_s8d24_to_abgr8.frag
@@ -0,0 +1,23 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#version 450
+
+layout(binding = 0) uniform sampler2D depth_tex;
+layout(binding = 1) uniform isampler2D stencil_tex;
+
+layout(location = 0) out vec4 color;
+
+void main() {
+ ivec2 coord = ivec2(gl_FragCoord.xy);
+ uint depth = uint(textureLod(depth_tex, coord, 0).r * (exp2(24.0) - 1.0f));
+ uint stencil = uint(textureLod(stencil_tex, coord, 0).r);
+
+ highp uint depth_val =
+ uint(textureLod(depth_tex, coord, 0).r * (exp2(32.0) - 1.0));
+ lowp uint stencil_val = textureLod(stencil_tex, coord, 0).r;
+ highp uvec4 components =
+ uvec4((uvec3(depth_val) >> uvec3(24u, 16u, 8u)) & 0x000000FFu, stencil_val);
+ color.rgba = vec4(components) / (exp2(8.0) - 1.0);
+}
diff --git a/src/video_core/host_shaders/opengl_convert_s8d24.comp b/src/video_core/host_shaders/opengl_convert_s8d24.comp
new file mode 100644
index 000000000..83e1ab176
--- /dev/null
+++ b/src/video_core/host_shaders/opengl_convert_s8d24.comp
@@ -0,0 +1,18 @@
+// Copyright 2022 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#version 430 core
+
+layout(local_size_x = 16, local_size_y = 8) in;
+
+layout(binding = 0, rgba8ui) restrict uniform uimage2D destination;
+layout(location = 0) uniform uvec3 size;
+
+void main() {
+ if (any(greaterThanEqual(gl_GlobalInvocationID, size))) {
+ return;
+ }
+ uvec4 components = imageLoad(destination, ivec2(gl_GlobalInvocationID.xy));
+ imageStore(destination, ivec2(gl_GlobalInvocationID.xy), components.wxyz);
+}
diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp
index 4ff3fa268..722ebd9ad 100644
--- a/src/video_core/memory_manager.cpp
+++ b/src/video_core/memory_manager.cpp
@@ -11,7 +11,6 @@
#include "core/hle/kernel/k_page_table.h"
#include "core/hle/kernel/k_process.h"
#include "core/memory.h"
-#include "video_core/gpu.h"
#include "video_core/memory_manager.h"
#include "video_core/rasterizer_interface.h"
#include "video_core/renderer_base.h"
diff --git a/src/video_core/query_cache.h b/src/video_core/query_cache.h
index 392f82eb7..8a84bcfa9 100644
--- a/src/video_core/query_cache.h
+++ b/src/video_core/query_cache.h
@@ -18,9 +18,7 @@
#include "common/assert.h"
#include "common/settings.h"
-#include "core/core.h"
#include "video_core/engines/maxwell_3d.h"
-#include "video_core/gpu.h"
#include "video_core/memory_manager.h"
#include "video_core/rasterizer_interface.h"
diff --git a/src/video_core/renderer_base.cpp b/src/video_core/renderer_base.cpp
index a99c33c37..c9627cffd 100644
--- a/src/video_core/renderer_base.cpp
+++ b/src/video_core/renderer_base.cpp
@@ -3,7 +3,6 @@
// Refer to the license.txt file included.
#include "common/logging/log.h"
-#include "common/settings.h"
#include "core/frontend/emu_window.h"
#include "video_core/renderer_base.h"
diff --git a/src/video_core/renderer_opengl/gl_buffer_cache.cpp b/src/video_core/renderer_opengl/gl_buffer_cache.cpp
index d4dd10bb6..f1f7b384b 100644
--- a/src/video_core/renderer_opengl/gl_buffer_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_buffer_cache.cpp
@@ -135,6 +135,20 @@ BufferCacheRuntime::BufferCacheRuntime(const Device& device_)
buffer.Create();
glNamedBufferData(buffer.handle, 0x10'000, nullptr, GL_STREAM_COPY);
}
+
+ device_access_memory = [this]() -> u64 {
+ if (device.CanReportMemoryUsage()) {
+ return device.GetCurrentDedicatedVideoMemory() + 512_MiB;
+ }
+ return 2_GiB; // Return minimum requirements
+ }();
+}
+
+u64 BufferCacheRuntime::GetDeviceMemoryUsage() const {
+ if (device.CanReportMemoryUsage()) {
+ return device_access_memory - device.GetCurrentDedicatedVideoMemory();
+ }
+ return 2_GiB;
}
void BufferCacheRuntime::CopyBuffer(Buffer& dst_buffer, Buffer& src_buffer,
diff --git a/src/video_core/renderer_opengl/gl_buffer_cache.h b/src/video_core/renderer_opengl/gl_buffer_cache.h
index 060d36427..a8699f28c 100644
--- a/src/video_core/renderer_opengl/gl_buffer_cache.h
+++ b/src/video_core/renderer_opengl/gl_buffer_cache.h
@@ -7,9 +7,7 @@
#include <array>
#include <span>
-#include "common/alignment.h"
#include "common/common_types.h"
-#include "common/dynamic_library.h"
#include "video_core/buffer_cache/buffer_cache.h"
#include "video_core/rasterizer_interface.h"
#include "video_core/renderer_opengl/gl_device.h"
@@ -91,6 +89,8 @@ public:
void BindImageBuffer(Buffer& buffer, u32 offset, u32 size,
VideoCore::Surface::PixelFormat format);
+ u64 GetDeviceMemoryUsage() const;
+
void BindFastUniformBuffer(size_t stage, u32 binding_index, u32 size) {
const GLuint handle = fast_uniforms[stage][binding_index].handle;
const GLsizeiptr gl_size = static_cast<GLsizeiptr>(size);
@@ -153,6 +153,14 @@ public:
use_storage_buffers = use_storage_buffers_;
}
+ u64 GetDeviceLocalMemory() const {
+ return device_access_memory;
+ }
+
+ bool CanReportMemoryUsage() const {
+ return device.CanReportMemoryUsage();
+ }
+
private:
static constexpr std::array PABO_LUT{
GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV, GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV,
@@ -186,6 +194,8 @@ private:
std::array<OGLBuffer, VideoCommon::NUM_COMPUTE_UNIFORM_BUFFERS> copy_compute_uniforms;
u32 index_buffer_offset = 0;
+
+ u64 device_access_memory;
};
struct BufferCacheParams {
diff --git a/src/video_core/renderer_opengl/gl_compute_pipeline.h b/src/video_core/renderer_opengl/gl_compute_pipeline.h
index 50c676365..b0d183b46 100644
--- a/src/video_core/renderer_opengl/gl_compute_pipeline.h
+++ b/src/video_core/renderer_opengl/gl_compute_pipeline.h
@@ -6,7 +6,6 @@
#include <array>
#include <type_traits>
-#include <utility>
#include "common/common_types.h"
#include "shader_recompiler/shader_info.h"
diff --git a/src/video_core/renderer_opengl/gl_device.cpp b/src/video_core/renderer_opengl/gl_device.cpp
index e62912a22..597301eeb 100644
--- a/src/video_core/renderer_opengl/gl_device.cpp
+++ b/src/video_core/renderer_opengl/gl_device.cpp
@@ -6,8 +6,6 @@
#include <array>
#include <cstddef>
#include <cstdlib>
-#include <cstring>
-#include <limits>
#include <optional>
#include <span>
#include <stdexcept>
@@ -15,13 +13,15 @@
#include <glad/glad.h>
+#include "common/literals.h"
#include "common/logging/log.h"
-#include "common/scope_exit.h"
#include "common/settings.h"
#include "shader_recompiler/stage.h"
#include "video_core/renderer_opengl/gl_device.h"
#include "video_core/renderer_opengl/gl_resource_manager.h"
+using namespace Common::Literals;
+
namespace OpenGL {
namespace {
constexpr std::array LIMIT_UBOS = {
@@ -168,6 +168,7 @@ Device::Device() {
has_sparse_texture_2 = GLAD_GL_ARB_sparse_texture2;
warp_size_potentially_larger_than_guest = !is_nvidia && !is_intel;
need_fastmath_off = is_nvidia;
+ can_report_memory = GLAD_GL_NVX_gpu_memory_info;
// At the moment of writing this, only Nvidia's driver optimizes BufferSubData on exclusive
// uniform buffers as "push constants"
@@ -279,4 +280,10 @@ void main() {
})");
}
+u64 Device::GetCurrentDedicatedVideoMemory() const {
+ GLint cur_avail_mem_kb = 0;
+ glGetIntegerv(GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX, &cur_avail_mem_kb);
+ return static_cast<u64>(cur_avail_mem_kb) * 1_KiB;
+}
+
} // namespace OpenGL
diff --git a/src/video_core/renderer_opengl/gl_device.h b/src/video_core/renderer_opengl/gl_device.h
index 95c2e8d38..9bb0b9148 100644
--- a/src/video_core/renderer_opengl/gl_device.h
+++ b/src/video_core/renderer_opengl/gl_device.h
@@ -20,6 +20,8 @@ public:
[[nodiscard]] std::string GetVendorName() const;
+ u64 GetCurrentDedicatedVideoMemory() const;
+
u32 GetMaxUniformBuffers(Shader::Stage stage) const noexcept {
return max_uniform_buffers[static_cast<size_t>(stage)];
}
@@ -168,6 +170,10 @@ public:
return vendor_name == "ATI Technologies Inc.";
}
+ bool CanReportMemoryUsage() const {
+ return can_report_memory;
+ }
+
private:
static bool TestVariableAoffi();
static bool TestPreciseBug();
@@ -210,6 +216,7 @@ private:
bool need_fastmath_off{};
bool has_cbuf_ftou_bug{};
bool has_bool_ref_bug{};
+ bool can_report_memory{};
std::string vendor_name;
};
diff --git a/src/video_core/renderer_opengl/gl_graphics_pipeline.cpp b/src/video_core/renderer_opengl/gl_graphics_pipeline.cpp
index 9e6732abd..fd40966d5 100644
--- a/src/video_core/renderer_opengl/gl_graphics_pipeline.cpp
+++ b/src/video_core/renderer_opengl/gl_graphics_pipeline.cpp
@@ -253,7 +253,7 @@ GraphicsPipeline::GraphicsPipeline(
}
}
if (in_parallel) {
- std::lock_guard lock{built_mutex};
+ std::scoped_lock lock{built_mutex};
built_fence.Create();
// Flush this context to ensure compilation commands and fence are in the GPU pipe.
glFlush();
diff --git a/src/video_core/renderer_opengl/gl_graphics_pipeline.h b/src/video_core/renderer_opengl/gl_graphics_pipeline.h
index 311d49f3f..4f8049717 100644
--- a/src/video_core/renderer_opengl/gl_graphics_pipeline.h
+++ b/src/video_core/renderer_opengl/gl_graphics_pipeline.h
@@ -14,7 +14,6 @@
#include "common/common_types.h"
#include "shader_recompiler/shader_info.h"
#include "video_core/engines/maxwell_3d.h"
-#include "video_core/memory_manager.h"
#include "video_core/renderer_opengl/gl_buffer_cache.h"
#include "video_core/renderer_opengl/gl_resource_manager.h"
#include "video_core/renderer_opengl/gl_texture_cache.h"
diff --git a/src/video_core/renderer_opengl/gl_query_cache.cpp b/src/video_core/renderer_opengl/gl_query_cache.cpp
index acebbf5f4..9e6c50055 100644
--- a/src/video_core/renderer_opengl/gl_query_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_query_cache.cpp
@@ -3,15 +3,12 @@
// Refer to the license.txt file included.
#include <algorithm>
-#include <cstring>
#include <memory>
-#include <unordered_map>
#include <utility>
#include <vector>
#include <glad/glad.h>
-#include "common/assert.h"
#include "core/core.h"
#include "video_core/engines/maxwell_3d.h"
#include "video_core/memory_manager.h"
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index 142412a8e..8ef79753f 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -6,9 +6,7 @@
#include <array>
#include <bitset>
#include <memory>
-#include <string>
#include <string_view>
-#include <tuple>
#include <utility>
#include <glad/glad.h>
@@ -17,8 +15,9 @@
#include "common/logging/log.h"
#include "common/math_util.h"
#include "common/microprofile.h"
+#include "common/scope_exit.h"
#include "common/settings.h"
-#include "core/memory.h"
+
#include "video_core/engines/kepler_compute.h"
#include "video_core/engines/maxwell_3d.h"
#include "video_core/memory_manager.h"
@@ -212,6 +211,7 @@ void RasterizerOpenGL::Clear() {
void RasterizerOpenGL::Draw(bool is_indexed, bool is_instanced) {
MICROPROFILE_SCOPE(OpenGL_Drawing);
+ SCOPE_EXIT({ gpu.TickWork(); });
query_cache.UpdateCounters();
GraphicsPipeline* const pipeline{shader_cache.CurrentGraphicsPipeline()};
@@ -267,8 +267,6 @@ void RasterizerOpenGL::Draw(bool is_indexed, bool is_instanced) {
++num_queued_commands;
has_written_global_memory |= pipeline->WritesGlobalMemory();
-
- gpu.TickWork();
}
void RasterizerOpenGL::DispatchCompute() {
@@ -522,6 +520,8 @@ bool RasterizerOpenGL::AccelerateDisplay(const Tegra::FramebufferConfig& config,
// ASSERT_MSG(image_view->size.width == config.width, "Framebuffer width is different");
// ASSERT_MSG(image_view->size.height == config.height, "Framebuffer height is different");
+ screen_info.texture.width = image_view->size.width;
+ screen_info.texture.height = image_view->size.height;
screen_info.display_texture = image_view->Handle(Shader::TextureType::Color2D);
screen_info.display_srgb = VideoCore::Surface::IsPixelFormatSRGB(image_view->format);
return true;
@@ -559,12 +559,19 @@ void RasterizerOpenGL::SyncViewport() {
const bool dirty_viewport = flags[Dirty::Viewports] || rescale_viewports;
const bool dirty_clip_control = flags[Dirty::ClipControl];
- if (dirty_clip_control || flags[Dirty::FrontFace]) {
+ if (dirty_viewport || dirty_clip_control || flags[Dirty::FrontFace]) {
flags[Dirty::FrontFace] = false;
GLenum mode = MaxwellToGL::FrontFace(regs.front_face);
+ bool flip_faces = false;
if (regs.screen_y_control.triangle_rast_flip != 0 &&
regs.viewport_transform[0].scale_y < 0.0f) {
+ flip_faces = !flip_faces;
+ }
+ if (regs.viewport_transform[0].scale_z < 0.0f) {
+ flip_faces = !flip_faces;
+ }
+ if (flip_faces) {
switch (mode) {
case GL_CW:
mode = GL_CCW;
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h
index 98f6fd342..c79461d59 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer.h
@@ -5,20 +5,14 @@
#pragma once
#include <array>
-#include <atomic>
#include <cstddef>
-#include <memory>
#include <optional>
-#include <tuple>
-#include <utility>
#include <boost/container/static_vector.hpp>
#include <glad/glad.h>
#include "common/common_types.h"
-#include "video_core/engines/const_buffer_info.h"
-#include "video_core/engines/maxwell_3d.h"
#include "video_core/engines/maxwell_dma.h"
#include "video_core/rasterizer_accelerated.h"
#include "video_core/rasterizer_interface.h"
@@ -26,12 +20,8 @@
#include "video_core/renderer_opengl/gl_device.h"
#include "video_core/renderer_opengl/gl_fence_manager.h"
#include "video_core/renderer_opengl/gl_query_cache.h"
-#include "video_core/renderer_opengl/gl_resource_manager.h"
#include "video_core/renderer_opengl/gl_shader_cache.h"
-#include "video_core/renderer_opengl/gl_shader_manager.h"
-#include "video_core/renderer_opengl/gl_state_tracker.h"
#include "video_core/renderer_opengl/gl_texture_cache.h"
-#include "video_core/textures/texture.h"
namespace Core::Memory {
class Memory;
diff --git a/src/video_core/renderer_opengl/gl_resource_manager.cpp b/src/video_core/renderer_opengl/gl_resource_manager.cpp
index 5e7101d28..f6839a657 100644
--- a/src/video_core/renderer_opengl/gl_resource_manager.cpp
+++ b/src/video_core/renderer_opengl/gl_resource_manager.cpp
@@ -3,9 +3,7 @@
// Refer to the license.txt file included.
#include <string_view>
-#include <utility>
#include <glad/glad.h>
-#include "common/common_types.h"
#include "common/microprofile.h"
#include "video_core/renderer_opengl/gl_resource_manager.h"
#include "video_core/renderer_opengl/gl_shader_util.h"
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index f71e01a34..05c5e702c 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -14,10 +14,8 @@
#include "common/fs/fs.h"
#include "common/fs/path_util.h"
#include "common/logging/log.h"
-#include "common/scope_exit.h"
#include "common/settings.h"
#include "common/thread_worker.h"
-#include "core/core.h"
#include "shader_recompiler/backend/glasm/emit_glasm.h"
#include "shader_recompiler/backend/glsl/emit_glsl.h"
#include "shader_recompiler/backend/spirv/emit_spirv.h"
@@ -29,7 +27,6 @@
#include "video_core/engines/maxwell_3d.h"
#include "video_core/memory_manager.h"
#include "video_core/renderer_opengl/gl_rasterizer.h"
-#include "video_core/renderer_opengl/gl_resource_manager.h"
#include "video_core/renderer_opengl/gl_shader_cache.h"
#include "video_core/renderer_opengl/gl_shader_util.h"
#include "video_core/renderer_opengl/gl_state_tracker.h"
@@ -261,7 +258,7 @@ void ShaderCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading,
[this, key, env = std::move(env), &state, &callback](Context* ctx) mutable {
ctx->pools.ReleaseContents();
auto pipeline{CreateComputePipeline(ctx->pools, key, env)};
- std::lock_guard lock{state.mutex};
+ std::scoped_lock lock{state.mutex};
if (pipeline) {
compute_cache.emplace(key, std::move(pipeline));
}
@@ -283,7 +280,7 @@ void ShaderCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading,
}
ctx->pools.ReleaseContents();
auto pipeline{CreateGraphicsPipeline(ctx->pools, key, MakeSpan(env_ptrs), false)};
- std::lock_guard lock{state.mutex};
+ std::scoped_lock lock{state.mutex};
if (pipeline) {
graphics_cache.emplace(key, std::move(pipeline));
}
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.h b/src/video_core/renderer_opengl/gl_shader_cache.h
index a34110b37..06d4b38bb 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.h
+++ b/src/video_core/renderer_opengl/gl_shader_cache.h
@@ -4,18 +4,13 @@
#pragma once
-#include <array>
#include <filesystem>
#include <stop_token>
#include <unordered_map>
-#include <glad/glad.h>
-
#include "common/common_types.h"
#include "common/thread_worker.h"
-#include "shader_recompiler/frontend/ir/value.h"
#include "shader_recompiler/host_translate_info.h"
-#include "shader_recompiler/object_pool.h"
#include "shader_recompiler/profile.h"
#include "video_core/renderer_opengl/gl_compute_pipeline.h"
#include "video_core/renderer_opengl/gl_graphics_pipeline.h"
diff --git a/src/video_core/renderer_opengl/gl_shader_util.cpp b/src/video_core/renderer_opengl/gl_shader_util.cpp
index d432072ad..129966e72 100644
--- a/src/video_core/renderer_opengl/gl_shader_util.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_util.cpp
@@ -6,7 +6,6 @@
#include <vector>
#include <glad/glad.h>
-#include "common/assert.h"
#include "common/logging/log.h"
#include "common/settings.h"
#include "video_core/renderer_opengl/gl_shader_util.h"
diff --git a/src/video_core/renderer_opengl/gl_shader_util.h b/src/video_core/renderer_opengl/gl_shader_util.h
index 4e1a2a8e1..a64ef37dc 100644
--- a/src/video_core/renderer_opengl/gl_shader_util.h
+++ b/src/video_core/renderer_opengl/gl_shader_util.h
@@ -5,14 +5,10 @@
#pragma once
#include <span>
-#include <string>
#include <string_view>
-#include <vector>
#include <glad/glad.h>
-#include "common/assert.h"
-#include "common/logging/log.h"
#include "video_core/renderer_opengl/gl_resource_manager.h"
namespace OpenGL {
diff --git a/src/video_core/renderer_opengl/gl_state_tracker.h b/src/video_core/renderer_opengl/gl_state_tracker.h
index 5864c7c07..550ed6d36 100644
--- a/src/video_core/renderer_opengl/gl_state_tracker.h
+++ b/src/video_core/renderer_opengl/gl_state_tracker.h
@@ -9,7 +9,6 @@
#include <glad/glad.h>
#include "common/common_types.h"
-#include "core/core.h"
#include "video_core/dirty_flags.h"
#include "video_core/engines/maxwell_3d.h"
diff --git a/src/video_core/renderer_opengl/gl_stream_buffer.h b/src/video_core/renderer_opengl/gl_stream_buffer.h
index 2e67922a6..f0cb29dca 100644
--- a/src/video_core/renderer_opengl/gl_stream_buffer.h
+++ b/src/video_core/renderer_opengl/gl_stream_buffer.h
@@ -5,7 +5,6 @@
#pragma once
#include <array>
-#include <memory>
#include <span>
#include <utility>
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp
index 3c1f79a27..d12076358 100644
--- a/src/video_core/renderer_opengl/gl_texture_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp
@@ -409,8 +409,8 @@ ImageBufferMap::~ImageBufferMap() {
TextureCacheRuntime::TextureCacheRuntime(const Device& device_, ProgramManager& program_manager,
StateTracker& state_tracker_)
- : device{device_}, state_tracker{state_tracker_},
- util_shaders(program_manager), resolution{Settings::values.resolution_info} {
+ : device{device_}, state_tracker{state_tracker_}, util_shaders(program_manager),
+ format_conversion_pass{util_shaders}, resolution{Settings::values.resolution_info} {
static constexpr std::array TARGETS{GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D};
for (size_t i = 0; i < TARGETS.size(); ++i) {
const GLenum target = TARGETS[i];
@@ -484,6 +484,13 @@ TextureCacheRuntime::TextureCacheRuntime(const Device& device_, ProgramManager&
rescale_read_fbos[i].Create();
}
}
+
+ device_access_memory = [this]() -> u64 {
+ if (device.CanReportMemoryUsage()) {
+ return device.GetCurrentDedicatedVideoMemory() + 512_MiB;
+ }
+ return 2_GiB; // Return minimum requirements
+ }();
}
TextureCacheRuntime::~TextureCacheRuntime() = default;
@@ -500,13 +507,11 @@ ImageBufferMap TextureCacheRuntime::DownloadStagingBuffer(size_t size) {
return download_buffers.RequestMap(size, false);
}
-u64 TextureCacheRuntime::GetDeviceLocalMemory() const {
- if (GLAD_GL_NVX_gpu_memory_info) {
- GLint cur_avail_mem_kb = 0;
- glGetIntegerv(GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX, &cur_avail_mem_kb);
- return static_cast<u64>(cur_avail_mem_kb) * 1_KiB;
+u64 TextureCacheRuntime::GetDeviceMemoryUsage() const {
+ if (device.CanReportMemoryUsage()) {
+ return device_access_memory - device.GetCurrentDedicatedVideoMemory();
}
- return 2_GiB; // Return minimum requirements
+ return 2_GiB;
}
void TextureCacheRuntime::CopyImage(Image& dst_image, Image& src_image,
@@ -686,6 +691,7 @@ Image::Image(TextureCacheRuntime& runtime_, const VideoCommon::ImageInfo& info_,
}
if (IsConverted(runtime->device, info.format, info.type)) {
flags |= ImageFlagBits::Converted;
+ flags |= ImageFlagBits::CostlyLoad;
gl_internal_format = IsPixelFormatSRGB(info.format) ? GL_SRGB8_ALPHA8 : GL_RGBA8;
gl_format = GL_RGBA;
gl_type = GL_UNSIGNED_INT_8_8_8_8_REV;
@@ -1319,6 +1325,9 @@ Framebuffer::Framebuffer(TextureCacheRuntime& runtime, std::span<ImageView*, NUM
Framebuffer::~Framebuffer() = default;
+FormatConversionPass::FormatConversionPass(UtilShaders& util_shaders_)
+ : util_shaders{util_shaders_} {}
+
void FormatConversionPass::ConvertImage(Image& dst_image, Image& src_image,
std::span<const VideoCommon::ImageCopy> copies) {
const GLenum dst_target = ImageTarget(dst_image.info);
@@ -1351,6 +1360,12 @@ void FormatConversionPass::ConvertImage(Image& dst_image, Image& src_image,
dst_origin.z, region.width, region.height, region.depth,
dst_image.GlFormat(), dst_image.GlType(), nullptr);
}
+
+ // Swap component order of S8D24 to ABGR8 reinterprets
+ if (src_image.info.format == PixelFormat::D24_UNORM_S8_UINT &&
+ dst_image.info.format == PixelFormat::A8B8G8R8_UNORM) {
+ util_shaders.ConvertS8D24(dst_image, copies);
+ }
}
} // namespace OpenGL
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.h b/src/video_core/renderer_opengl/gl_texture_cache.h
index 7f425631f..672fa8dde 100644
--- a/src/video_core/renderer_opengl/gl_texture_cache.h
+++ b/src/video_core/renderer_opengl/gl_texture_cache.h
@@ -10,6 +10,7 @@
#include <glad/glad.h>
#include "shader_recompiler/shader_info.h"
+#include "video_core/renderer_opengl/gl_device.h"
#include "video_core/renderer_opengl/gl_resource_manager.h"
#include "video_core/renderer_opengl/util_shaders.h"
#include "video_core/texture_cache/image_view_base.h"
@@ -21,7 +22,6 @@ struct ResolutionScalingInfo;
namespace OpenGL {
-class Device;
class ProgramManager;
class StateTracker;
@@ -55,13 +55,14 @@ struct FormatProperties {
class FormatConversionPass {
public:
- FormatConversionPass() = default;
+ explicit FormatConversionPass(UtilShaders& util_shaders);
~FormatConversionPass() = default;
void ConvertImage(Image& dst_image, Image& src_image,
std::span<const VideoCommon::ImageCopy> copies);
private:
+ UtilShaders& util_shaders;
OGLBuffer intermediate_pbo;
size_t pbo_size{};
};
@@ -83,7 +84,15 @@ public:
ImageBufferMap DownloadStagingBuffer(size_t size);
- u64 GetDeviceLocalMemory() const;
+ u64 GetDeviceLocalMemory() const {
+ return device_access_memory;
+ }
+
+ u64 GetDeviceMemoryUsage() const;
+
+ bool CanReportMemoryUsage() const {
+ return device.CanReportMemoryUsage();
+ }
bool ShouldReinterpret([[maybe_unused]] Image& dst, [[maybe_unused]] Image& src) {
return true;
@@ -172,6 +181,7 @@ private:
std::array<OGLFramebuffer, 4> rescale_draw_fbos;
std::array<OGLFramebuffer, 4> rescale_read_fbos;
const Settings::ResolutionScalingInfo& resolution;
+ u64 device_access_memory;
};
class Image : public VideoCommon::ImageBase {
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index f81c1b233..3a3c213bb 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -5,7 +5,6 @@
#include <algorithm>
#include <cstddef>
#include <cstdlib>
-#include <cstring>
#include <memory>
#include <glad/glad.h>
@@ -15,11 +14,9 @@
#include "common/microprofile.h"
#include "common/settings.h"
#include "common/telemetry.h"
-#include "core/core.h"
#include "core/core_timing.h"
#include "core/frontend/emu_window.h"
#include "core/memory.h"
-#include "core/perf_stats.h"
#include "core/telemetry_session.h"
#include "video_core/host_shaders/fxaa_frag.h"
#include "video_core/host_shaders/fxaa_vert.h"
@@ -211,6 +208,8 @@ void RendererOpenGL::LoadFBToScreenInfo(const Tegra::FramebufferConfig& framebuf
// Framebuffer orientation handling
framebuffer_transform_flags = framebuffer.transform_flags;
framebuffer_crop_rect = framebuffer.crop_rect;
+ framebuffer_width = framebuffer.width;
+ framebuffer_height = framebuffer.height;
const VAddr framebuffer_addr{framebuffer.address + framebuffer.offset};
screen_info.was_accelerated =
@@ -326,12 +325,12 @@ void RendererOpenGL::ConfigureFramebufferTexture(TextureInfo& texture,
GLint internal_format;
switch (framebuffer.pixel_format) {
- case Tegra::FramebufferConfig::PixelFormat::A8B8G8R8_UNORM:
+ case Service::android::PixelFormat::Rgba8888:
internal_format = GL_RGBA8;
texture.gl_format = GL_RGBA;
texture.gl_type = GL_UNSIGNED_INT_8_8_8_8_REV;
break;
- case Tegra::FramebufferConfig::PixelFormat::RGB565_UNORM:
+ case Service::android::PixelFormat::Rgb565:
internal_format = GL_RGB565;
texture.gl_format = GL_RGB;
texture.gl_type = GL_UNSIGNED_SHORT_5_6_5;
@@ -467,8 +466,8 @@ void RendererOpenGL::DrawScreen(const Layout::FramebufferLayout& layout) {
const auto& texcoords = screen_info.display_texcoords;
auto left = texcoords.left;
auto right = texcoords.right;
- if (framebuffer_transform_flags != Tegra::FramebufferConfig::TransformFlags::Unset) {
- if (framebuffer_transform_flags == Tegra::FramebufferConfig::TransformFlags::FlipV) {
+ if (framebuffer_transform_flags != Service::android::BufferTransformFlags::Unset) {
+ if (framebuffer_transform_flags == Service::android::BufferTransformFlags::FlipV) {
// Flip the framebuffer vertically
left = texcoords.right;
right = texcoords.left;
@@ -483,9 +482,12 @@ void RendererOpenGL::DrawScreen(const Layout::FramebufferLayout& layout) {
ASSERT_MSG(framebuffer_crop_rect.top == 0, "Unimplemented");
ASSERT_MSG(framebuffer_crop_rect.left == 0, "Unimplemented");
+ f32 scale_u = static_cast<f32>(framebuffer_width) / static_cast<f32>(screen_info.texture.width);
+ f32 scale_v =
+ static_cast<f32>(framebuffer_height) / static_cast<f32>(screen_info.texture.height);
+
// Scale the output by the crop width/height. This is commonly used with 1280x720 rendering
// (e.g. handheld mode) on a 1920x1080 framebuffer.
- f32 scale_u = 1.f, scale_v = 1.f;
if (framebuffer_crop_rect.GetWidth() > 0) {
scale_u = static_cast<f32>(framebuffer_crop_rect.GetWidth()) /
static_cast<f32>(screen_info.texture.width);
diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h
index cda333cad..ae9558a33 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.h
+++ b/src/video_core/renderer_opengl/renderer_opengl.h
@@ -8,10 +8,12 @@
#include <glad/glad.h>
#include "common/common_types.h"
#include "common/math_util.h"
+
#include "video_core/renderer_base.h"
#include "video_core/renderer_opengl/gl_device.h"
#include "video_core/renderer_opengl/gl_rasterizer.h"
#include "video_core/renderer_opengl/gl_resource_manager.h"
+#include "video_core/renderer_opengl/gl_shader_manager.h"
#include "video_core/renderer_opengl/gl_state_tracker.h"
namespace Core {
@@ -44,7 +46,7 @@ struct TextureInfo {
GLsizei height;
GLenum gl_format;
GLenum gl_type;
- Tegra::FramebufferConfig::PixelFormat pixel_format;
+ Service::android::PixelFormat pixel_format;
};
/// Structure used for storing information about the display target for the Switch screen
@@ -133,8 +135,10 @@ private:
std::vector<u8> gl_framebuffer_data;
/// Used for transforming the framebuffer orientation
- Tegra::FramebufferConfig::TransformFlags framebuffer_transform_flags{};
+ Service::android::BufferTransformFlags framebuffer_transform_flags{};
Common::Rectangle<int> framebuffer_crop_rect;
+ u32 framebuffer_width;
+ u32 framebuffer_height;
};
} // namespace OpenGL
diff --git a/src/video_core/renderer_opengl/util_shaders.cpp b/src/video_core/renderer_opengl/util_shaders.cpp
index 897c380b3..04c482a09 100644
--- a/src/video_core/renderer_opengl/util_shaders.cpp
+++ b/src/video_core/renderer_opengl/util_shaders.cpp
@@ -13,6 +13,7 @@
#include "video_core/host_shaders/astc_decoder_comp.h"
#include "video_core/host_shaders/block_linear_unswizzle_2d_comp.h"
#include "video_core/host_shaders/block_linear_unswizzle_3d_comp.h"
+#include "video_core/host_shaders/opengl_convert_s8d24_comp.h"
#include "video_core/host_shaders/opengl_copy_bc4_comp.h"
#include "video_core/host_shaders/pitch_unswizzle_comp.h"
#include "video_core/renderer_opengl/gl_shader_manager.h"
@@ -50,7 +51,8 @@ UtilShaders::UtilShaders(ProgramManager& program_manager_)
block_linear_unswizzle_2d_program(MakeProgram(BLOCK_LINEAR_UNSWIZZLE_2D_COMP)),
block_linear_unswizzle_3d_program(MakeProgram(BLOCK_LINEAR_UNSWIZZLE_3D_COMP)),
pitch_unswizzle_program(MakeProgram(PITCH_UNSWIZZLE_COMP)),
- copy_bc4_program(MakeProgram(OPENGL_COPY_BC4_COMP)) {
+ copy_bc4_program(MakeProgram(OPENGL_COPY_BC4_COMP)),
+ convert_s8d24_program(MakeProgram(OPENGL_CONVERT_S8D24_COMP)) {
const auto swizzle_table = Tegra::Texture::MakeSwizzleTable();
swizzle_table_buffer.Create();
glNamedBufferStorage(swizzle_table_buffer.handle, sizeof(swizzle_table), &swizzle_table, 0);
@@ -248,6 +250,26 @@ void UtilShaders::CopyBC4(Image& dst_image, Image& src_image, std::span<const Im
program_manager.RestoreGuestCompute();
}
+void UtilShaders::ConvertS8D24(Image& dst_image, std::span<const ImageCopy> copies) {
+ static constexpr GLuint BINDING_DESTINATION = 0;
+ static constexpr GLuint LOC_SIZE = 0;
+
+ program_manager.BindComputeProgram(convert_s8d24_program.handle);
+ for (const ImageCopy& copy : copies) {
+ ASSERT(copy.src_subresource.base_layer == 0);
+ ASSERT(copy.src_subresource.num_layers == 1);
+ ASSERT(copy.dst_subresource.base_layer == 0);
+ ASSERT(copy.dst_subresource.num_layers == 1);
+
+ glUniform3ui(LOC_SIZE, copy.extent.width, copy.extent.height, copy.extent.depth);
+ glBindImageTexture(BINDING_DESTINATION, dst_image.StorageHandle(),
+ copy.dst_subresource.base_level, GL_TRUE, 0, GL_READ_WRITE, GL_RGBA8UI);
+ glDispatchCompute(Common::DivCeil(copy.extent.width, 16u),
+ Common::DivCeil(copy.extent.height, 8u), copy.extent.depth);
+ }
+ program_manager.RestoreGuestCompute();
+}
+
GLenum StoreFormat(u32 bytes_per_block) {
switch (bytes_per_block) {
case 1:
diff --git a/src/video_core/renderer_opengl/util_shaders.h b/src/video_core/renderer_opengl/util_shaders.h
index 5de95ea7a..5c132e67f 100644
--- a/src/video_core/renderer_opengl/util_shaders.h
+++ b/src/video_core/renderer_opengl/util_shaders.h
@@ -39,6 +39,8 @@ public:
void CopyBC4(Image& dst_image, Image& src_image,
std::span<const VideoCommon::ImageCopy> copies);
+ void ConvertS8D24(Image& dst_image, std::span<const VideoCommon::ImageCopy> copies);
+
private:
ProgramManager& program_manager;
@@ -49,6 +51,7 @@ private:
OGLProgram block_linear_unswizzle_3d_program;
OGLProgram pitch_unswizzle_program;
OGLProgram copy_bc4_program;
+ OGLProgram convert_s8d24_program;
};
GLenum StoreFormat(u32 bytes_per_block);
diff --git a/src/video_core/renderer_vulkan/blit_image.cpp b/src/video_core/renderer_vulkan/blit_image.cpp
index 2c3914459..abda1c490 100644
--- a/src/video_core/renderer_vulkan/blit_image.cpp
+++ b/src/video_core/renderer_vulkan/blit_image.cpp
@@ -9,6 +9,7 @@
#include "video_core/host_shaders/convert_d24s8_to_abgr8_frag_spv.h"
#include "video_core/host_shaders/convert_depth_to_float_frag_spv.h"
#include "video_core/host_shaders/convert_float_to_depth_frag_spv.h"
+#include "video_core/host_shaders/convert_s8d24_to_abgr8_frag_spv.h"
#include "video_core/host_shaders/full_screen_triangle_vert_spv.h"
#include "video_core/host_shaders/vulkan_blit_color_float_frag_spv.h"
#include "video_core/host_shaders/vulkan_blit_depth_stencil_frag_spv.h"
@@ -366,16 +367,14 @@ BlitImageHelper::BlitImageHelper(const Device& device_, VKScheduler& scheduler_,
PipelineLayoutCreateInfo(two_textures_set_layout.address()))),
full_screen_vert(BuildShader(device, FULL_SCREEN_TRIANGLE_VERT_SPV)),
blit_color_to_color_frag(BuildShader(device, VULKAN_BLIT_COLOR_FLOAT_FRAG_SPV)),
+ blit_depth_stencil_frag(BuildShader(device, VULKAN_BLIT_DEPTH_STENCIL_FRAG_SPV)),
convert_depth_to_float_frag(BuildShader(device, CONVERT_DEPTH_TO_FLOAT_FRAG_SPV)),
convert_float_to_depth_frag(BuildShader(device, CONVERT_FLOAT_TO_DEPTH_FRAG_SPV)),
convert_abgr8_to_d24s8_frag(BuildShader(device, CONVERT_ABGR8_TO_D24S8_FRAG_SPV)),
convert_d24s8_to_abgr8_frag(BuildShader(device, CONVERT_D24S8_TO_ABGR8_FRAG_SPV)),
+ convert_s8d24_to_abgr8_frag(BuildShader(device, CONVERT_S8D24_TO_ABGR8_FRAG_SPV)),
linear_sampler(device.GetLogical().CreateSampler(SAMPLER_CREATE_INFO<VK_FILTER_LINEAR>)),
- nearest_sampler(device.GetLogical().CreateSampler(SAMPLER_CREATE_INFO<VK_FILTER_NEAREST>)) {
- if (device.IsExtShaderStencilExportSupported()) {
- blit_depth_stencil_frag = BuildShader(device, VULKAN_BLIT_DEPTH_STENCIL_FRAG_SPV);
- }
-}
+ nearest_sampler(device.GetLogical().CreateSampler(SAMPLER_CREATE_INFO<VK_FILTER_NEAREST>)) {}
BlitImageHelper::~BlitImageHelper() = default;
@@ -474,6 +473,13 @@ void BlitImageHelper::ConvertD24S8ToABGR8(const Framebuffer* dst_framebuffer,
ConvertDepthStencil(*convert_d24s8_to_abgr8_pipeline, dst_framebuffer, src_image_view);
}
+void BlitImageHelper::ConvertS8D24ToABGR8(const Framebuffer* dst_framebuffer,
+ ImageView& src_image_view) {
+ ConvertPipelineColorTargetEx(convert_s8d24_to_abgr8_pipeline, dst_framebuffer->RenderPass(),
+ convert_s8d24_to_abgr8_frag);
+ ConvertDepthStencil(*convert_s8d24_to_abgr8_pipeline, dst_framebuffer, src_image_view);
+}
+
void BlitImageHelper::Convert(VkPipeline pipeline, const Framebuffer* dst_framebuffer,
const ImageView& src_image_view) {
const VkPipelineLayout layout = *one_texture_pipeline_layout;
diff --git a/src/video_core/renderer_vulkan/blit_image.h b/src/video_core/renderer_vulkan/blit_image.h
index 85e7dca5b..29ee0f67a 100644
--- a/src/video_core/renderer_vulkan/blit_image.h
+++ b/src/video_core/renderer_vulkan/blit_image.h
@@ -4,8 +4,6 @@
#pragma once
-#include <compare>
-
#include "video_core/engines/fermi_2d.h"
#include "video_core/renderer_vulkan/vk_descriptor_pool.h"
#include "video_core/texture_cache/types.h"
@@ -56,6 +54,8 @@ public:
void ConvertD24S8ToABGR8(const Framebuffer* dst_framebuffer, ImageView& src_image_view);
+ void ConvertS8D24ToABGR8(const Framebuffer* dst_framebuffer, ImageView& src_image_view);
+
private:
void Convert(VkPipeline pipeline, const Framebuffer* dst_framebuffer,
const ImageView& src_image_view);
@@ -99,6 +99,7 @@ private:
vk::ShaderModule convert_float_to_depth_frag;
vk::ShaderModule convert_abgr8_to_d24s8_frag;
vk::ShaderModule convert_d24s8_to_abgr8_frag;
+ vk::ShaderModule convert_s8d24_to_abgr8_frag;
vk::Sampler linear_sampler;
vk::Sampler nearest_sampler;
@@ -112,6 +113,7 @@ private:
vk::Pipeline convert_r16_to_d16_pipeline;
vk::Pipeline convert_abgr8_to_d24s8_pipeline;
vk::Pipeline convert_d24s8_to_abgr8_pipeline;
+ vk::Pipeline convert_s8d24_to_abgr8_pipeline;
};
} // namespace Vulkan
diff --git a/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp b/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
index d70153df3..c2259ac5f 100644
--- a/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
+++ b/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
@@ -4,9 +4,6 @@
#include <algorithm>
#include <cstring>
-#include <tuple>
-
-#include <boost/functional/hash.hpp>
#include "common/bit_cast.h"
#include "common/cityhash.h"
diff --git a/src/video_core/renderer_vulkan/maxwell_to_vk.h b/src/video_core/renderer_vulkan/maxwell_to_vk.h
index 8a9616039..1c1f420f2 100644
--- a/src/video_core/renderer_vulkan/maxwell_to_vk.h
+++ b/src/video_core/renderer_vulkan/maxwell_to_vk.h
@@ -4,7 +4,6 @@
#pragma once
-#include "common/common_types.h"
#include "shader_recompiler/stage.h"
#include "video_core/engines/maxwell_3d.h"
#include "video_core/surface.h"
diff --git a/src/video_core/renderer_vulkan/pipeline_helper.h b/src/video_core/renderer_vulkan/pipeline_helper.h
index 11c160570..c25d469e6 100644
--- a/src/video_core/renderer_vulkan/pipeline_helper.h
+++ b/src/video_core/renderer_vulkan/pipeline_helper.h
@@ -8,7 +8,6 @@
#include <boost/container/small_vector.hpp>
-#include "common/assert.h"
#include "common/common_types.h"
#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/shader_info.h"
@@ -16,7 +15,6 @@
#include "video_core/renderer_vulkan/vk_update_descriptor.h"
#include "video_core/texture_cache/texture_cache.h"
#include "video_core/texture_cache/types.h"
-#include "video_core/textures/texture.h"
#include "video_core/vulkan_common/vulkan_device.h"
namespace Vulkan {
diff --git a/src/video_core/renderer_vulkan/pipeline_statistics.cpp b/src/video_core/renderer_vulkan/pipeline_statistics.cpp
index bfec931a6..7ccadf084 100644
--- a/src/video_core/renderer_vulkan/pipeline_statistics.cpp
+++ b/src/video_core/renderer_vulkan/pipeline_statistics.cpp
@@ -57,7 +57,7 @@ void PipelineStatistics::Collect(VkPipeline pipeline) {
stage_stats.basic_block_count = GetUint64(statistic);
}
}
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
collected_stats.push_back(stage_stats);
}
}
@@ -66,7 +66,7 @@ void PipelineStatistics::Report() const {
double num{};
Stats total;
{
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
for (const Stats& stats : collected_stats) {
total.code_size += stats.code_size;
total.register_count += stats.register_count;
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
index 74822814d..ef57fdfa4 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
@@ -13,16 +13,15 @@
#include <fmt/format.h>
#include "common/logging/log.h"
+#include "common/scope_exit.h"
#include "common/settings.h"
#include "common/telemetry.h"
-#include "core/core.h"
#include "core/core_timing.h"
#include "core/frontend/emu_window.h"
#include "core/telemetry_session.h"
#include "video_core/gpu.h"
#include "video_core/renderer_vulkan/renderer_vulkan.h"
#include "video_core/renderer_vulkan/vk_blit_screen.h"
-#include "video_core/renderer_vulkan/vk_master_semaphore.h"
#include "video_core/renderer_vulkan/vk_rasterizer.h"
#include "video_core/renderer_vulkan/vk_scheduler.h"
#include "video_core/renderer_vulkan/vk_state_tracker.h"
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.h b/src/video_core/renderer_vulkan/renderer_vulkan.h
index 6dc985109..9680108b6 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.h
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.h
@@ -6,7 +6,6 @@
#include <memory>
#include <string>
-#include <vector>
#include "common/dynamic_library.h"
#include "video_core/renderer_base.h"
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.cpp b/src/video_core/renderer_vulkan/vk_blit_screen.cpp
index 621a6a071..b866e9103 100644
--- a/src/video_core/renderer_vulkan/vk_blit_screen.cpp
+++ b/src/video_core/renderer_vulkan/vk_blit_screen.cpp
@@ -6,7 +6,6 @@
#include <array>
#include <cstring>
#include <memory>
-#include <tuple>
#include <vector>
#include "common/assert.h"
@@ -28,7 +27,6 @@
#include "video_core/renderer_vulkan/renderer_vulkan.h"
#include "video_core/renderer_vulkan/vk_blit_screen.h"
#include "video_core/renderer_vulkan/vk_fsr.h"
-#include "video_core/renderer_vulkan/vk_master_semaphore.h"
#include "video_core/renderer_vulkan/vk_scheduler.h"
#include "video_core/renderer_vulkan/vk_shader_util.h"
#include "video_core/renderer_vulkan/vk_swapchain.h"
@@ -96,11 +94,11 @@ std::size_t GetSizeInBytes(const Tegra::FramebufferConfig& framebuffer) {
VkFormat GetFormat(const Tegra::FramebufferConfig& framebuffer) {
switch (framebuffer.pixel_format) {
- case Tegra::FramebufferConfig::PixelFormat::A8B8G8R8_UNORM:
+ case Service::android::PixelFormat::Rgba8888:
return VK_FORMAT_A8B8G8R8_UNORM_PACK32;
- case Tegra::FramebufferConfig::PixelFormat::RGB565_UNORM:
+ case Service::android::PixelFormat::Rgb565:
return VK_FORMAT_R5G6B5_UNORM_PACK16;
- case Tegra::FramebufferConfig::PixelFormat::B8G8R8A8_UNORM:
+ case Service::android::PixelFormat::Bgra8888:
return VK_FORMAT_B8G8R8A8_UNORM;
default:
UNIMPLEMENTED_MSG("Unknown framebuffer pixel format: {}",
@@ -1392,9 +1390,9 @@ void VKBlitScreen::SetVertexData(BufferData& data, const Tegra::FramebufferConfi
auto right = texcoords.right;
switch (framebuffer_transform_flags) {
- case Tegra::FramebufferConfig::TransformFlags::Unset:
+ case Service::android::BufferTransformFlags::Unset:
break;
- case Tegra::FramebufferConfig::TransformFlags::FlipV:
+ case Service::android::BufferTransformFlags::FlipV:
// Flip the framebuffer vertically
left = texcoords.right;
right = texcoords.left;
@@ -1408,8 +1406,9 @@ void VKBlitScreen::SetVertexData(BufferData& data, const Tegra::FramebufferConfi
UNIMPLEMENTED_IF(framebuffer_crop_rect.top != 0);
UNIMPLEMENTED_IF(framebuffer_crop_rect.left != 0);
- f32 scale_u = 1.0f;
- f32 scale_v = 1.0f;
+ f32 scale_u = static_cast<f32>(framebuffer.width) / static_cast<f32>(screen_info.width);
+ f32 scale_v = static_cast<f32>(framebuffer.height) / static_cast<f32>(screen_info.height);
+
// Scale the output by the crop width/height. This is commonly used with 1280x720 rendering
// (e.g. handheld mode) on a 1920x1080 framebuffer.
if (!fsr) {
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp
index 5ffd93499..def838c34 100644
--- a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp
@@ -141,6 +141,18 @@ StagingBufferRef BufferCacheRuntime::DownloadStagingBuffer(size_t size) {
return staging_pool.Request(size, MemoryUsage::Download);
}
+u64 BufferCacheRuntime::GetDeviceLocalMemory() const {
+ return device.GetDeviceLocalMemory();
+}
+
+u64 BufferCacheRuntime::GetDeviceMemoryUsage() const {
+ return device.GetDeviceMemoryUsage();
+}
+
+bool BufferCacheRuntime::CanReportMemoryUsage() const {
+ return device.CanReportMemoryUsage();
+}
+
void BufferCacheRuntime::Finish() {
scheduler.Finish();
}
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.h b/src/video_core/renderer_vulkan/vk_buffer_cache.h
index 1ee0d8420..d7fdd18ff 100644
--- a/src/video_core/renderer_vulkan/vk_buffer_cache.h
+++ b/src/video_core/renderer_vulkan/vk_buffer_cache.h
@@ -65,6 +65,12 @@ public:
void Finish();
+ u64 GetDeviceLocalMemory() const;
+
+ u64 GetDeviceMemoryUsage() const;
+
+ bool CanReportMemoryUsage() const;
+
[[nodiscard]] StagingBufferRef UploadStagingBuffer(size_t size);
[[nodiscard]] StagingBufferRef DownloadStagingBuffer(size_t size);
diff --git a/src/video_core/renderer_vulkan/vk_compute_pass.cpp b/src/video_core/renderer_vulkan/vk_compute_pass.cpp
index 4d73427b4..713794410 100644
--- a/src/video_core/renderer_vulkan/vk_compute_pass.cpp
+++ b/src/video_core/renderer_vulkan/vk_compute_pass.cpp
@@ -3,12 +3,10 @@
// Refer to the license.txt file included.
#include <array>
-#include <cstring>
#include <memory>
#include <optional>
#include <utility>
-#include "common/alignment.h"
#include "common/assert.h"
#include "common/common_types.h"
#include "common/div_ceil.h"
@@ -23,7 +21,6 @@
#include "video_core/renderer_vulkan/vk_update_descriptor.h"
#include "video_core/texture_cache/accelerated_swizzle.h"
#include "video_core/texture_cache/types.h"
-#include "video_core/textures/astc.h"
#include "video_core/textures/decoders.h"
#include "video_core/vulkan_common/vulkan_device.h"
#include "video_core/vulkan_common/vulkan_wrapper.h"
diff --git a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp
index de36bcdb7..97b3594c2 100644
--- a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp
+++ b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp
@@ -77,7 +77,7 @@ ComputePipeline::ComputePipeline(const Device& device_, DescriptorPool& descript
if (pipeline_statistics) {
pipeline_statistics->Collect(*pipeline);
}
- std::lock_guard lock{build_mutex};
+ std::scoped_lock lock{build_mutex};
is_built = true;
build_condvar.notify_one();
if (shader_notify) {
diff --git a/src/video_core/renderer_vulkan/vk_compute_pipeline.h b/src/video_core/renderer_vulkan/vk_compute_pipeline.h
index 8c4b0a301..c64bd9a06 100644
--- a/src/video_core/renderer_vulkan/vk_compute_pipeline.h
+++ b/src/video_core/renderer_vulkan/vk_compute_pipeline.h
@@ -11,7 +11,6 @@
#include "common/common_types.h"
#include "common/thread_worker.h"
#include "shader_recompiler/shader_info.h"
-#include "video_core/memory_manager.h"
#include "video_core/renderer_vulkan/vk_buffer_cache.h"
#include "video_core/renderer_vulkan/vk_descriptor_pool.h"
#include "video_core/renderer_vulkan/vk_texture_cache.h"
diff --git a/src/video_core/renderer_vulkan/vk_fence_manager.cpp b/src/video_core/renderer_vulkan/vk_fence_manager.cpp
index 3bec48d14..0c1098c8f 100644
--- a/src/video_core/renderer_vulkan/vk_fence_manager.cpp
+++ b/src/video_core/renderer_vulkan/vk_fence_manager.cpp
@@ -9,7 +9,6 @@
#include "video_core/renderer_vulkan/vk_scheduler.h"
#include "video_core/renderer_vulkan/vk_texture_cache.h"
#include "video_core/vulkan_common/vulkan_device.h"
-#include "video_core/vulkan_common/vulkan_wrapper.h"
namespace Vulkan {
diff --git a/src/video_core/renderer_vulkan/vk_fence_manager.h b/src/video_core/renderer_vulkan/vk_fence_manager.h
index 2f8322d29..cf9f4adbf 100644
--- a/src/video_core/renderer_vulkan/vk_fence_manager.h
+++ b/src/video_core/renderer_vulkan/vk_fence_manager.h
@@ -9,7 +9,6 @@
#include "video_core/fence_manager.h"
#include "video_core/renderer_vulkan/vk_buffer_cache.h"
#include "video_core/renderer_vulkan/vk_texture_cache.h"
-#include "video_core/vulkan_common/vulkan_wrapper.h"
namespace Core {
class System;
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
index d514b71d0..8959d6059 100644
--- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
+++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
@@ -258,7 +258,7 @@ GraphicsPipeline::GraphicsPipeline(
pipeline_statistics->Collect(*pipeline);
}
- std::lock_guard lock{build_mutex};
+ std::scoped_lock lock{build_mutex};
is_built = true;
build_condvar.notify_one();
if (shader_notify) {
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index a633b73e5..336d1e9dc 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -16,13 +16,11 @@
#include "common/microprofile.h"
#include "common/thread_worker.h"
#include "core/core.h"
-#include "core/memory.h"
#include "shader_recompiler/backend/spirv/emit_spirv.h"
#include "shader_recompiler/environment.h"
#include "shader_recompiler/frontend/maxwell/control_flow.h"
#include "shader_recompiler/frontend/maxwell/translate_program.h"
#include "shader_recompiler/program_header.h"
-#include "video_core/dirty_flags.h"
#include "video_core/engines/kepler_compute.h"
#include "video_core/engines/maxwell_3d.h"
#include "video_core/memory_manager.h"
@@ -406,7 +404,7 @@ void PipelineCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading
workers.QueueWork([this, key, env = std::move(env), &state, &callback]() mutable {
ShaderPools pools;
auto pipeline{CreateComputePipeline(pools, key, env, state.statistics.get(), false)};
- std::lock_guard lock{state.mutex};
+ std::scoped_lock lock{state.mutex};
if (pipeline) {
compute_cache.emplace(key, std::move(pipeline));
}
@@ -436,7 +434,7 @@ void PipelineCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading
auto pipeline{CreateGraphicsPipeline(pools, key, MakeSpan(env_ptrs),
state.statistics.get(), false)};
- std::lock_guard lock{state.mutex};
+ std::scoped_lock lock{state.mutex};
graphics_cache.emplace(key, std::move(pipeline));
++state.built;
if (state.has_loaded) {
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.h b/src/video_core/renderer_vulkan/vk_pipeline_cache.h
index 4c135b5dd..579e25a4a 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.h
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.h
@@ -7,11 +7,9 @@
#include <array>
#include <cstddef>
#include <filesystem>
-#include <iosfwd>
#include <memory>
#include <type_traits>
#include <unordered_map>
-#include <utility>
#include <vector>
#include "common/common_types.h"
@@ -29,7 +27,6 @@
#include "video_core/renderer_vulkan/vk_graphics_pipeline.h"
#include "video_core/renderer_vulkan/vk_texture_cache.h"
#include "video_core/shader_cache.h"
-#include "video_core/vulkan_common/vulkan_wrapper.h"
namespace Core {
class System;
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
index 2227d9197..fa87d37f8 100644
--- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp
+++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
@@ -6,15 +6,12 @@
#include <array>
#include <memory>
#include <mutex>
-#include <vector>
-#include "common/alignment.h"
#include "common/assert.h"
#include "common/logging/log.h"
#include "common/microprofile.h"
#include "common/scope_exit.h"
#include "common/settings.h"
-#include "core/core.h"
#include "video_core/engines/kepler_compute.h"
#include "video_core/engines/maxwell_3d.h"
#include "video_core/renderer_vulkan/blit_image.h"
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h
index 5af2e275b..c25036fb3 100644
--- a/src/video_core/renderer_vulkan/vk_rasterizer.h
+++ b/src/video_core/renderer_vulkan/vk_rasterizer.h
@@ -5,10 +5,6 @@
#pragma once
#include <array>
-#include <bitset>
-#include <memory>
-#include <utility>
-#include <vector>
#include <boost/container/static_vector.hpp>
@@ -17,14 +13,12 @@
#include "video_core/rasterizer_accelerated.h"
#include "video_core/rasterizer_interface.h"
#include "video_core/renderer_vulkan/blit_image.h"
-#include "video_core/renderer_vulkan/fixed_pipeline_state.h"
#include "video_core/renderer_vulkan/vk_buffer_cache.h"
#include "video_core/renderer_vulkan/vk_descriptor_pool.h"
#include "video_core/renderer_vulkan/vk_fence_manager.h"
#include "video_core/renderer_vulkan/vk_pipeline_cache.h"
#include "video_core/renderer_vulkan/vk_query_cache.h"
#include "video_core/renderer_vulkan/vk_render_pass_cache.h"
-#include "video_core/renderer_vulkan/vk_scheduler.h"
#include "video_core/renderer_vulkan/vk_staging_buffer_pool.h"
#include "video_core/renderer_vulkan/vk_texture_cache.h"
#include "video_core/renderer_vulkan/vk_update_descriptor.h"
diff --git a/src/video_core/renderer_vulkan/vk_render_pass_cache.cpp b/src/video_core/renderer_vulkan/vk_render_pass_cache.cpp
index 451ffe019..d22bb6694 100644
--- a/src/video_core/renderer_vulkan/vk_render_pass_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_render_pass_cache.cpp
@@ -36,7 +36,7 @@ VkAttachmentDescription AttachmentDescription(const Device& device, PixelFormat
RenderPassCache::RenderPassCache(const Device& device_) : device{&device_} {}
VkRenderPass RenderPassCache::Get(const RenderPassKey& key) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
const auto [pair, is_new] = cache.try_emplace(key);
if (!is_new) {
return *pair->second;
diff --git a/src/video_core/renderer_vulkan/vk_scheduler.cpp b/src/video_core/renderer_vulkan/vk_scheduler.cpp
index 7d9d4f7ba..6a9416457 100644
--- a/src/video_core/renderer_vulkan/vk_scheduler.cpp
+++ b/src/video_core/renderer_vulkan/vk_scheduler.cpp
@@ -4,7 +4,6 @@
#include <memory>
#include <mutex>
-#include <optional>
#include <thread>
#include <utility>
@@ -74,7 +73,7 @@ void VKScheduler::DispatchWork() {
return;
}
{
- std::lock_guard lock{work_mutex};
+ std::scoped_lock lock{work_mutex};
work_queue.push(std::move(chunk));
}
work_cv.notify_one();
@@ -158,7 +157,7 @@ void VKScheduler::WorkerThread(std::stop_token stop_token) {
if (has_submit) {
AllocateWorkerCommandBuffer();
}
- std::lock_guard reserve_lock{reserve_mutex};
+ std::scoped_lock reserve_lock{reserve_mutex};
chunk_reserve.push_back(std::move(work));
} while (!stop_token.stop_requested());
}
@@ -283,7 +282,7 @@ void VKScheduler::EndRenderPass() {
}
void VKScheduler::AcquireNewChunk() {
- std::lock_guard lock{reserve_mutex};
+ std::scoped_lock lock{reserve_mutex};
if (chunk_reserve.empty()) {
chunk = std::make_unique<CommandChunk>();
return;
diff --git a/src/video_core/renderer_vulkan/vk_scheduler.h b/src/video_core/renderer_vulkan/vk_scheduler.h
index e69aa136b..25c5e6ca1 100644
--- a/src/video_core/renderer_vulkan/vk_scheduler.h
+++ b/src/video_core/renderer_vulkan/vk_scheduler.h
@@ -4,7 +4,6 @@
#pragma once
-#include <atomic>
#include <condition_variable>
#include <cstddef>
#include <memory>
diff --git a/src/video_core/renderer_vulkan/vk_shader_util.cpp b/src/video_core/renderer_vulkan/vk_shader_util.cpp
index aaad4f292..e8e339f3c 100644
--- a/src/video_core/renderer_vulkan/vk_shader_util.cpp
+++ b/src/video_core/renderer_vulkan/vk_shader_util.cpp
@@ -3,9 +3,7 @@
// Refer to the license.txt file included.
#include <cstring>
-#include <memory>
-#include "common/assert.h"
#include "common/common_types.h"
#include "video_core/renderer_vulkan/vk_shader_util.h"
#include "video_core/vulkan_common/vulkan_device.h"
diff --git a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
index 5d5329abf..64a58304b 100644
--- a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
+++ b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
@@ -118,7 +118,7 @@ StagingBufferPool::StagingBufferPool(const Device& device_, MemoryAllocator& mem
.image = nullptr,
.buffer = *stream_buffer,
};
- const auto memory_properties = device.GetPhysical().GetMemoryProperties();
+ const auto memory_properties = device.GetPhysical().GetMemoryProperties().memoryProperties;
VkMemoryAllocateInfo stream_memory_info{
.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
.pNext = make_dedicated ? &dedicated_info : nullptr,
diff --git a/src/video_core/renderer_vulkan/vk_state_tracker.cpp b/src/video_core/renderer_vulkan/vk_state_tracker.cpp
index c00913f55..1e597f98c 100644
--- a/src/video_core/renderer_vulkan/vk_state_tracker.cpp
+++ b/src/video_core/renderer_vulkan/vk_state_tracker.cpp
@@ -5,7 +5,6 @@
#include <algorithm>
#include <array>
#include <cstddef>
-#include <iterator>
#include "common/common_types.h"
#include "core/core.h"
diff --git a/src/video_core/renderer_vulkan/vk_state_tracker.h b/src/video_core/renderer_vulkan/vk_state_tracker.h
index 40a149832..8240c83e1 100644
--- a/src/video_core/renderer_vulkan/vk_state_tracker.h
+++ b/src/video_core/renderer_vulkan/vk_state_tracker.h
@@ -8,7 +8,6 @@
#include <limits>
#include "common/common_types.h"
-#include "core/core.h"
#include "video_core/dirty_flags.h"
#include "video_core/engines/maxwell_3d.h"
diff --git a/src/video_core/renderer_vulkan/vk_swapchain.cpp b/src/video_core/renderer_vulkan/vk_swapchain.cpp
index 8972a6921..ce744f4ca 100644
--- a/src/video_core/renderer_vulkan/vk_swapchain.cpp
+++ b/src/video_core/renderer_vulkan/vk_swapchain.cpp
@@ -7,11 +7,9 @@
#include <limits>
#include <vector>
-#include "common/assert.h"
#include "common/logging/log.h"
#include "common/settings.h"
#include "core/core.h"
-#include "core/frontend/framebuffer_layout.h"
#include "video_core/renderer_vulkan/vk_scheduler.h"
#include "video_core/renderer_vulkan/vk_swapchain.h"
#include "video_core/vulkan_common/vulkan_device.h"
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
index ca6019a3a..2c2ccc7c6 100644
--- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
@@ -781,11 +781,6 @@ bool TextureCacheRuntime::ShouldReinterpret(Image& dst, Image& src) {
!device.IsExtShaderStencilExportSupported()) {
return true;
}
- if (VideoCore::Surface::GetFormatType(src.info.format) ==
- VideoCore::Surface::SurfaceType::DepthStencil &&
- !device.IsExtShaderStencilExportSupported()) {
- return true;
- }
if (dst.info.format == PixelFormat::D32_FLOAT_S8_UINT ||
src.info.format == PixelFormat::D32_FLOAT_S8_UINT) {
return true;
@@ -1067,10 +1062,12 @@ void TextureCacheRuntime::ConvertImage(Framebuffer* dst, ImageView& dst_view, Im
}
break;
case PixelFormat::A8B8G8R8_UNORM:
- if (src_view.format == PixelFormat::S8_UINT_D24_UNORM ||
- src_view.format == PixelFormat::D24_UNORM_S8_UINT) {
+ if (src_view.format == PixelFormat::S8_UINT_D24_UNORM) {
return blit_image_helper.ConvertD24S8ToABGR8(dst, src_view);
}
+ if (src_view.format == PixelFormat::D24_UNORM_S8_UINT) {
+ return blit_image_helper.ConvertS8D24ToABGR8(dst, src_view);
+ }
break;
case PixelFormat::R32_FLOAT:
if (src_view.format == PixelFormat::D32_FLOAT) {
@@ -1192,6 +1189,14 @@ u64 TextureCacheRuntime::GetDeviceLocalMemory() const {
return device.GetDeviceLocalMemory();
}
+u64 TextureCacheRuntime::GetDeviceMemoryUsage() const {
+ return device.GetDeviceMemoryUsage();
+}
+
+bool TextureCacheRuntime::CanReportMemoryUsage() const {
+ return device.CanReportMemoryUsage();
+}
+
void TextureCacheRuntime::TickFrame() {}
Image::Image(TextureCacheRuntime& runtime_, const ImageInfo& info_, GPUVAddr gpu_addr_,
@@ -1206,6 +1211,7 @@ Image::Image(TextureCacheRuntime& runtime_, const ImageInfo& info_, GPUVAddr gpu
} else {
flags |= VideoCommon::ImageFlagBits::Converted;
}
+ flags |= VideoCommon::ImageFlagBits::CostlyLoad;
}
if (runtime->device.HasDebuggingToolAttached()) {
original_image.SetObjectNameEXT(VideoCommon::Name(*this).c_str());
@@ -1445,8 +1451,7 @@ bool Image::BlitScaleHelper(bool scale_up) {
runtime->blit_image_helper.BlitColor(blit_framebuffer.get(), color_view, dst_region,
src_region, operation, BLIT_OPERATION);
- } else if (!runtime->device.IsBlitDepthStencilSupported() &&
- aspect_mask == (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) {
+ } else if (aspect_mask == (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) {
if (!blit_framebuffer) {
blit_framebuffer = std::make_unique<Framebuffer>(*runtime, nullptr, view_ptr, extent);
}
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.h b/src/video_core/renderer_vulkan/vk_texture_cache.h
index c81130dd2..cb15b4a1c 100644
--- a/src/video_core/renderer_vulkan/vk_texture_cache.h
+++ b/src/video_core/renderer_vulkan/vk_texture_cache.h
@@ -55,6 +55,10 @@ public:
u64 GetDeviceLocalMemory() const;
+ u64 GetDeviceMemoryUsage() const;
+
+ bool CanReportMemoryUsage() const;
+
void BlitImage(Framebuffer* dst_framebuffer, ImageView& dst, ImageView& src,
const Region2D& dst_region, const Region2D& src_region,
Tegra::Engines::Fermi2D::Filter filter,
diff --git a/src/video_core/renderer_vulkan/vk_update_descriptor.cpp b/src/video_core/renderer_vulkan/vk_update_descriptor.cpp
index 0df3a7fe9..89f1b508d 100644
--- a/src/video_core/renderer_vulkan/vk_update_descriptor.cpp
+++ b/src/video_core/renderer_vulkan/vk_update_descriptor.cpp
@@ -5,7 +5,6 @@
#include <variant>
#include <boost/container/static_vector.hpp>
-#include "common/assert.h"
#include "common/logging/log.h"
#include "video_core/renderer_vulkan/vk_scheduler.h"
#include "video_core/renderer_vulkan/vk_update_descriptor.h"
diff --git a/src/video_core/renderer_vulkan/vk_update_descriptor.h b/src/video_core/renderer_vulkan/vk_update_descriptor.h
index d7de4c490..971a4eb34 100644
--- a/src/video_core/renderer_vulkan/vk_update_descriptor.h
+++ b/src/video_core/renderer_vulkan/vk_update_descriptor.h
@@ -6,7 +6,6 @@
#include <array>
-#include "common/common_types.h"
#include "video_core/vulkan_common/vulkan_wrapper.h"
namespace Vulkan {
diff --git a/src/video_core/shader_cache.cpp b/src/video_core/shader_cache.cpp
index 87636857d..75031767a 100644
--- a/src/video_core/shader_cache.cpp
+++ b/src/video_core/shader_cache.cpp
@@ -25,7 +25,7 @@ void ShaderCache::InvalidateRegion(VAddr addr, size_t size) {
}
void ShaderCache::OnCPUWrite(VAddr addr, size_t size) {
- std::lock_guard lock{invalidation_mutex};
+ std::scoped_lock lock{invalidation_mutex};
InvalidatePagesInRegion(addr, size);
}
diff --git a/src/video_core/shader_environment.cpp b/src/video_core/shader_environment.cpp
index 3e673c437..3c22124c4 100644
--- a/src/video_core/shader_environment.cpp
+++ b/src/video_core/shader_environment.cpp
@@ -3,7 +3,6 @@
// Refer to the license.txt file included.
#include <algorithm>
-#include <bit>
#include <filesystem>
#include <fstream>
#include <memory>
diff --git a/src/video_core/shader_notify.cpp b/src/video_core/shader_notify.cpp
index bcaf5f575..ce8925896 100644
--- a/src/video_core/shader_notify.cpp
+++ b/src/video_core/shader_notify.cpp
@@ -4,7 +4,6 @@
#include <atomic>
#include <chrono>
-#include <optional>
#include "video_core/shader_notify.h"
diff --git a/src/video_core/shader_notify.h b/src/video_core/shader_notify.h
index 4d8d52071..538cda28a 100644
--- a/src/video_core/shader_notify.h
+++ b/src/video_core/shader_notify.h
@@ -6,7 +6,6 @@
#include <atomic>
#include <chrono>
-#include <optional>
namespace VideoCore {
class ShaderNotify {
diff --git a/src/video_core/surface.cpp b/src/video_core/surface.cpp
index a36015c8c..5f428d35d 100644
--- a/src/video_core/surface.cpp
+++ b/src/video_core/surface.cpp
@@ -190,13 +190,13 @@ PixelFormat PixelFormatFromRenderTargetFormat(Tegra::RenderTargetFormat format)
}
}
-PixelFormat PixelFormatFromGPUPixelFormat(Tegra::FramebufferConfig::PixelFormat format) {
+PixelFormat PixelFormatFromGPUPixelFormat(Service::android::PixelFormat format) {
switch (format) {
- case Tegra::FramebufferConfig::PixelFormat::A8B8G8R8_UNORM:
+ case Service::android::PixelFormat::Rgba8888:
return PixelFormat::A8B8G8R8_UNORM;
- case Tegra::FramebufferConfig::PixelFormat::RGB565_UNORM:
+ case Service::android::PixelFormat::Rgb565:
return PixelFormat::R5G6B5_UNORM;
- case Tegra::FramebufferConfig::PixelFormat::B8G8R8A8_UNORM:
+ case Service::android::PixelFormat::Bgra8888:
return PixelFormat::B8G8R8A8_UNORM;
default:
UNIMPLEMENTED_MSG("Unimplemented format={}", format);
diff --git a/src/video_core/surface.h b/src/video_core/surface.h
index 33e8d24ab..5704cf16a 100644
--- a/src/video_core/surface.h
+++ b/src/video_core/surface.h
@@ -460,7 +460,7 @@ PixelFormat PixelFormatFromDepthFormat(Tegra::DepthFormat format);
PixelFormat PixelFormatFromRenderTargetFormat(Tegra::RenderTargetFormat format);
-PixelFormat PixelFormatFromGPUPixelFormat(Tegra::FramebufferConfig::PixelFormat format);
+PixelFormat PixelFormatFromGPUPixelFormat(Service::android::PixelFormat format);
SurfaceType GetFormatType(PixelFormat pixel_format);
diff --git a/src/video_core/texture_cache/descriptor_table.h b/src/video_core/texture_cache/descriptor_table.h
index 3a03b786f..318bd5214 100644
--- a/src/video_core/texture_cache/descriptor_table.h
+++ b/src/video_core/texture_cache/descriptor_table.h
@@ -9,7 +9,6 @@
#include "common/common_types.h"
#include "common/div_ceil.h"
-#include "common/logging/log.h"
#include "video_core/memory_manager.h"
#include "video_core/rasterizer_interface.h"
diff --git a/src/video_core/texture_cache/image_base.h b/src/video_core/texture_cache/image_base.h
index 89c111c00..dd0106432 100644
--- a/src/video_core/texture_cache/image_base.h
+++ b/src/video_core/texture_cache/image_base.h
@@ -33,11 +33,12 @@ enum class ImageFlagBits : u32 {
///< garbage collection priority
Alias = 1 << 11, ///< This image has aliases and has priority on garbage
///< collection
+ CostlyLoad = 1 << 12, ///< Protected from low-tier GC as it is costly to load back.
// Rescaler
- Rescaled = 1 << 12,
- CheckingRescalable = 1 << 13,
- IsRescalable = 1 << 14,
+ Rescaled = 1 << 13,
+ CheckingRescalable = 1 << 14,
+ IsRescalable = 1 << 15,
};
DECLARE_ENUM_FLAG_OPERATORS(ImageFlagBits)
diff --git a/src/video_core/texture_cache/render_targets.h b/src/video_core/texture_cache/render_targets.h
index 0cb227d69..f8f13e84c 100644
--- a/src/video_core/texture_cache/render_targets.h
+++ b/src/video_core/texture_cache/render_targets.h
@@ -6,7 +6,6 @@
#include <algorithm>
#include <span>
-#include <utility>
#include "common/bit_cast.h"
#include "video_core/texture_cache/types.h"
diff --git a/src/video_core/texture_cache/slot_vector.h b/src/video_core/texture_cache/slot_vector.h
index 50df06409..6aabaef7b 100644
--- a/src/video_core/texture_cache/slot_vector.h
+++ b/src/video_core/texture_cache/slot_vector.h
@@ -5,9 +5,7 @@
#pragma once
#include <algorithm>
-#include <array>
#include <bit>
-#include <concepts>
#include <numeric>
#include <type_traits>
#include <utility>
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h
index 198bb0cfb..8fef74117 100644
--- a/src/video_core/texture_cache/texture_cache.h
+++ b/src/video_core/texture_cache/texture_cache.h
@@ -50,14 +50,20 @@ TextureCache<P>::TextureCache(Runtime& runtime_, VideoCore::RasterizerInterface&
void(slot_samplers.insert(runtime, sampler_descriptor));
if constexpr (HAS_DEVICE_MEMORY_INFO) {
- const auto device_memory = runtime.GetDeviceLocalMemory();
- const u64 possible_expected_memory = (device_memory * 4) / 10;
- const u64 possible_critical_memory = (device_memory * 7) / 10;
- expected_memory = std::max(possible_expected_memory, DEFAULT_EXPECTED_MEMORY - 256_MiB);
- critical_memory = std::max(possible_critical_memory, DEFAULT_CRITICAL_MEMORY - 512_MiB);
- minimum_memory = 0;
+ const s64 device_memory = static_cast<s64>(runtime.GetDeviceLocalMemory());
+ const s64 min_spacing_expected = device_memory - 1_GiB - 512_MiB;
+ const s64 min_spacing_critical = device_memory - 1_GiB;
+ const s64 mem_threshold = std::min(device_memory, TARGET_THRESHOLD);
+ const s64 min_vacancy_expected = (6 * mem_threshold) / 10;
+ const s64 min_vacancy_critical = (3 * mem_threshold) / 10;
+ expected_memory = static_cast<u64>(
+ std::max(std::min(device_memory - min_vacancy_expected, min_spacing_expected),
+ DEFAULT_EXPECTED_MEMORY));
+ critical_memory = static_cast<u64>(
+ std::max(std::min(device_memory - min_vacancy_critical, min_spacing_critical),
+ DEFAULT_CRITICAL_MEMORY));
+ minimum_memory = static_cast<u64>((device_memory - mem_threshold) / 2);
} else {
- // On OpenGL we can be more conservatives as the driver takes care.
expected_memory = DEFAULT_EXPECTED_MEMORY + 512_MiB;
critical_memory = DEFAULT_CRITICAL_MEMORY + 1_GiB;
minimum_memory = 0;
@@ -66,18 +72,21 @@ TextureCache<P>::TextureCache(Runtime& runtime_, VideoCore::RasterizerInterface&
template <class P>
void TextureCache<P>::RunGarbageCollector() {
- const bool high_priority_mode = total_used_memory >= expected_memory;
- const bool aggressive_mode = total_used_memory >= critical_memory;
- const u64 ticks_to_destroy = aggressive_mode ? 10ULL : high_priority_mode ? 25ULL : 100ULL;
- size_t num_iterations = aggressive_mode ? 300 : (high_priority_mode ? 50 : 10);
- const auto clean_up = [this, &num_iterations, high_priority_mode](ImageId image_id) {
+ bool high_priority_mode = total_used_memory >= expected_memory;
+ bool aggressive_mode = total_used_memory >= critical_memory;
+ const u64 ticks_to_destroy = aggressive_mode ? 10ULL : high_priority_mode ? 25ULL : 50ULL;
+ size_t num_iterations = aggressive_mode ? 40 : (high_priority_mode ? 20 : 10);
+ const auto clean_up = [this, &num_iterations, &high_priority_mode,
+ &aggressive_mode](ImageId image_id) {
if (num_iterations == 0) {
return true;
}
--num_iterations;
auto& image = slot_images[image_id];
- const bool must_download = image.IsSafeDownload();
- if (!high_priority_mode && must_download) {
+ const bool must_download =
+ image.IsSafeDownload() && False(image.flags & ImageFlagBits::BadOverlap);
+ if (!high_priority_mode &&
+ (must_download || True(image.flags & ImageFlagBits::CostlyLoad))) {
return false;
}
if (must_download) {
@@ -92,6 +101,18 @@ void TextureCache<P>::RunGarbageCollector() {
}
UnregisterImage(image_id);
DeleteImage(image_id, image.scale_tick > frame_tick + 5);
+ if (total_used_memory < critical_memory) {
+ if (aggressive_mode) {
+ // Sink the aggresiveness.
+ num_iterations >>= 2;
+ aggressive_mode = false;
+ return false;
+ }
+ if (high_priority_mode && total_used_memory < expected_memory) {
+ num_iterations >>= 1;
+ high_priority_mode = false;
+ }
+ }
return false;
};
lru_cache.ForEachItemBelow(frame_tick - ticks_to_destroy, clean_up);
@@ -99,6 +120,10 @@ void TextureCache<P>::RunGarbageCollector() {
template <class P>
void TextureCache<P>::TickFrame() {
+ // If we can obtain the memory info, use it instead of the estimate.
+ if (runtime.CanReportMemoryUsage()) {
+ total_used_memory = runtime.GetDeviceMemoryUsage();
+ }
if (total_used_memory > minimum_memory) {
RunGarbageCollector();
}
@@ -106,6 +131,7 @@ void TextureCache<P>::TickFrame() {
sentenced_framebuffers.Tick();
sentenced_image_view.Tick();
runtime.TickFrame();
+ critical_gc = 0;
++frame_tick;
}
@@ -343,7 +369,7 @@ template <bool has_blacklists>
void TextureCache<P>::FillImageViews(DescriptorTable<TICEntry>& table,
std::span<ImageViewId> cached_image_view_ids,
std::span<ImageViewInOut> views) {
- bool has_blacklisted;
+ bool has_blacklisted = false;
do {
has_deleted_images = false;
if constexpr (has_blacklists) {
@@ -1052,6 +1078,9 @@ ImageId TextureCache<P>::JoinImages(const ImageInfo& info, GPUVAddr gpu_addr, VA
for (const ImageId overlap_id : overlap_ids) {
Image& overlap = slot_images[overlap_id];
+ if (True(overlap.flags & ImageFlagBits::GpuModified)) {
+ new_image.flags |= ImageFlagBits::GpuModified;
+ }
if (overlap.info.num_samples != new_image.info.num_samples) {
LOG_WARNING(HW_GPU, "Copying between images with different samples is not implemented");
} else {
@@ -1414,6 +1443,10 @@ void TextureCache<P>::RegisterImage(ImageId image_id) {
tentative_size = EstimatedDecompressedSize(tentative_size, image.info.format);
}
total_used_memory += Common::AlignUp(tentative_size, 1024);
+ if (total_used_memory > critical_memory && critical_gc < GC_EMERGENCY_COUNTS) {
+ RunGarbageCollector();
+ critical_gc++;
+ }
image.lru_index = lru_cache.Insert(image_id, frame_tick);
ForEachGPUPage(image.gpu_addr, image.guest_size_bytes,
@@ -1704,6 +1737,9 @@ void TextureCache<P>::SynchronizeAliases(ImageId image_id) {
most_recent_tick = std::max(most_recent_tick, aliased_image.modification_tick);
aliased_images.push_back(&aliased);
any_rescaled |= True(aliased_image.flags & ImageFlagBits::Rescaled);
+ if (True(aliased_image.flags & ImageFlagBits::GpuModified)) {
+ image.flags |= ImageFlagBits::GpuModified;
+ }
}
}
if (aliased_images.empty()) {
@@ -1725,7 +1761,7 @@ void TextureCache<P>::SynchronizeAliases(ImageId image_id) {
});
const auto& resolution = Settings::values.resolution_info;
for (const AliasedImage* const aliased : aliased_images) {
- if (!resolution.active | !any_rescaled) {
+ if (!resolution.active || !any_rescaled) {
CopyImage(image_id, aliased->id, aliased->copies);
continue;
}
@@ -1736,19 +1772,7 @@ void TextureCache<P>::SynchronizeAliases(ImageId image_id) {
continue;
}
ScaleUp(aliased_image);
-
- const bool both_2d{image.info.type == ImageType::e2D &&
- aliased_image.info.type == ImageType::e2D};
- auto copies = aliased->copies;
- for (auto copy : copies) {
- copy.extent.width = std::max<u32>(
- (copy.extent.width * resolution.up_scale) >> resolution.down_shift, 1);
- if (both_2d) {
- copy.extent.height = std::max<u32>(
- (copy.extent.height * resolution.up_scale) >> resolution.down_shift, 1);
- }
- }
- CopyImage(image_id, aliased->id, copies);
+ CopyImage(image_id, aliased->id, aliased->copies);
}
}
diff --git a/src/video_core/texture_cache/texture_cache_base.h b/src/video_core/texture_cache/texture_cache_base.h
index 7107887a6..b1324edf3 100644
--- a/src/video_core/texture_cache/texture_cache_base.h
+++ b/src/video_core/texture_cache/texture_cache_base.h
@@ -22,7 +22,6 @@
#include "video_core/texture_cache/image_base.h"
#include "video_core/texture_cache/image_info.h"
#include "video_core/texture_cache/image_view_base.h"
-#include "video_core/texture_cache/image_view_info.h"
#include "video_core/texture_cache/render_targets.h"
#include "video_core/texture_cache/slot_vector.h"
#include "video_core/texture_cache/types.h"
@@ -60,8 +59,10 @@ class TextureCache {
/// True when the API can provide info about the memory of the device.
static constexpr bool HAS_DEVICE_MEMORY_INFO = P::HAS_DEVICE_MEMORY_INFO;
- static constexpr u64 DEFAULT_EXPECTED_MEMORY = 1_GiB;
- static constexpr u64 DEFAULT_CRITICAL_MEMORY = 2_GiB;
+ static constexpr s64 TARGET_THRESHOLD = 4_GiB;
+ static constexpr s64 DEFAULT_EXPECTED_MEMORY = 1_GiB + 125_MiB;
+ static constexpr s64 DEFAULT_CRITICAL_MEMORY = 1_GiB + 625_MiB;
+ static constexpr size_t GC_EMERGENCY_COUNTS = 2;
using Runtime = typename P::Runtime;
using Image = typename P::Image;
@@ -373,6 +374,7 @@ private:
u64 minimum_memory;
u64 expected_memory;
u64 critical_memory;
+ size_t critical_gc;
SlotVector<Image> slot_images;
SlotVector<ImageMapView> slot_map_views;
diff --git a/src/video_core/texture_cache/util.h b/src/video_core/texture_cache/util.h
index 7af52de2e..f13669ea5 100644
--- a/src/video_core/texture_cache/util.h
+++ b/src/video_core/texture_cache/util.h
@@ -9,10 +9,8 @@
#include "common/common_types.h"
-#include "video_core/engines/maxwell_3d.h"
#include "video_core/surface.h"
#include "video_core/texture_cache/image_base.h"
-#include "video_core/texture_cache/image_view_base.h"
#include "video_core/texture_cache/types.h"
#include "video_core/textures/texture.h"
diff --git a/src/video_core/textures/astc.cpp b/src/video_core/textures/astc.cpp
index 25161df1f..28e4beafd 100644
--- a/src/video_core/textures/astc.cpp
+++ b/src/video_core/textures/astc.cpp
@@ -16,6 +16,7 @@
// <http://gamma.cs.unc.edu/FasTC/>
#include <algorithm>
+#include <bit>
#include <cassert>
#include <cstring>
#include <span>
diff --git a/src/video_core/textures/astc.h b/src/video_core/textures/astc.h
index 14d2beec0..564ae1e36 100644
--- a/src/video_core/textures/astc.h
+++ b/src/video_core/textures/astc.h
@@ -4,9 +4,6 @@
#pragma once
-#include <bit>
-#include "common/common_types.h"
-
namespace Tegra::Texture::ASTC {
void Decompress(std::span<const uint8_t> data, uint32_t width, uint32_t height, uint32_t depth,
diff --git a/src/video_core/textures/decoders.cpp b/src/video_core/textures/decoders.cpp
index 24e943e4c..6dae23049 100644
--- a/src/video_core/textures/decoders.cpp
+++ b/src/video_core/textures/decoders.cpp
@@ -6,7 +6,6 @@
#include <cmath>
#include <cstring>
#include <span>
-#include <utility>
#include "common/alignment.h"
#include "common/assert.h"
@@ -14,7 +13,6 @@
#include "common/div_ceil.h"
#include "video_core/gpu.h"
#include "video_core/textures/decoders.h"
-#include "video_core/textures/texture.h"
namespace Tegra::Texture {
namespace {
diff --git a/src/video_core/textures/texture.cpp b/src/video_core/textures/texture.cpp
index 06954963d..f56b4b9f9 100644
--- a/src/video_core/textures/texture.cpp
+++ b/src/video_core/textures/texture.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <algorithm>
#include <array>
#include "common/cityhash.h"
diff --git a/src/video_core/vulkan_common/nsight_aftermath_tracker.h b/src/video_core/vulkan_common/nsight_aftermath_tracker.h
index eae1891dd..55c115081 100644
--- a/src/video_core/vulkan_common/nsight_aftermath_tracker.h
+++ b/src/video_core/vulkan_common/nsight_aftermath_tracker.h
@@ -4,20 +4,22 @@
#pragma once
-#include <filesystem>
-#include <mutex>
#include <span>
-#include <string>
-#include <vector>
#include "common/common_types.h"
-#include "common/dynamic_library.h"
-#include "video_core/vulkan_common/vulkan_wrapper.h"
#ifdef HAS_NSIGHT_AFTERMATH
+#include <filesystem>
+#include <mutex>
+
+// Vulkan headers must be included before Aftermath
+#include "video_core/vulkan_common/vulkan_wrapper.h"
+
#include <GFSDK_Aftermath_Defines.h>
#include <GFSDK_Aftermath_GpuCrashDump.h>
#include <GFSDK_Aftermath_GpuCrashDumpDecoding.h>
+
+#include "common/dynamic_library.h"
#endif
namespace Vulkan {
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp
index effde73c9..f3a05ada9 100644
--- a/src/video_core/vulkan_common/vulkan_device.cpp
+++ b/src/video_core/vulkan_common/vulkan_device.cpp
@@ -6,19 +6,20 @@
#include <bitset>
#include <chrono>
#include <optional>
-#include <string_view>
#include <thread>
#include <unordered_set>
#include <utility>
#include <vector>
#include "common/assert.h"
+#include "common/literals.h"
#include "common/settings.h"
#include "video_core/vulkan_common/nsight_aftermath_tracker.h"
#include "video_core/vulkan_common/vulkan_device.h"
#include "video_core/vulkan_common/vulkan_wrapper.h"
namespace Vulkan {
+using namespace Common::Literals;
namespace {
namespace Alternatives {
constexpr std::array STENCIL8_UINT{
@@ -597,6 +598,11 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
}
logical = vk::Device::Create(physical, queue_cis, extensions, first_next, dld);
+ is_integrated = properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU;
+ is_virtual = properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU;
+ is_non_gpu = properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_OTHER ||
+ properties.deviceType == VK_PHYSICAL_DEVICE_TYPE_CPU;
+
CollectPhysicalMemoryInfo();
CollectTelemetryParameters();
CollectToolingInfo();
@@ -615,6 +621,11 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
khr_push_descriptor = false;
break;
}
+ const u32 nv_major_version = (properties.driverVersion >> 22) & 0x3ff;
+ if (nv_major_version >= 510) {
+ LOG_WARNING(Render_Vulkan, "NVIDIA Drivers >= 510 do not support MSAA image blits");
+ cant_blit_msaa = true;
+ }
}
const bool is_radv = driver_id == VK_DRIVER_ID_MESA_RADV;
if (ext_extended_dynamic_state && is_radv) {
@@ -725,7 +736,7 @@ VkFormat Device::GetSupportedFormat(VkFormat wanted_format, VkFormatFeatureFlags
}
void Device::ReportLoss() const {
- LOG_CRITICAL(Render_Vulkan, "Device loss occured!");
+ LOG_CRITICAL(Render_Vulkan, "Device loss occurred!");
// Wait for the log to flush and for Nsight Aftermath to dump the results
std::this_thread::sleep_for(std::chrono::seconds{15});
@@ -986,6 +997,7 @@ std::vector<const char*> Device::LoadExtensions(bool requires_surface) {
test(has_khr_swapchain_mutable_format, VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME,
false);
test(has_ext_line_rasterization, VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME, false);
+ test(ext_memory_budget, VK_EXT_MEMORY_BUDGET_EXTENSION_NAME, true);
if (Settings::values.enable_nsight_aftermath) {
test(nv_device_diagnostics_config, VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME,
true);
@@ -998,7 +1010,7 @@ std::vector<const char*> Device::LoadExtensions(bool requires_surface) {
VkPhysicalDeviceFeatures2KHR features{};
features.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR;
- VkPhysicalDeviceProperties2KHR physical_properties;
+ VkPhysicalDeviceProperties2KHR physical_properties{};
physical_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR;
if (has_khr_shader_float16_int8) {
@@ -1268,15 +1280,50 @@ void Device::CollectTelemetryParameters() {
vendor_name = driver.driverName;
}
+u64 Device::GetDeviceMemoryUsage() const {
+ VkPhysicalDeviceMemoryBudgetPropertiesEXT budget;
+ budget.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT;
+ budget.pNext = nullptr;
+ physical.GetMemoryProperties(&budget);
+ u64 result{};
+ for (const size_t heap : valid_heap_memory) {
+ result += budget.heapUsage[heap];
+ }
+ return result;
+}
+
void Device::CollectPhysicalMemoryInfo() {
- const auto mem_properties = physical.GetMemoryProperties();
+ VkPhysicalDeviceMemoryBudgetPropertiesEXT budget{};
+ budget.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT;
+ const auto mem_info = physical.GetMemoryProperties(ext_memory_budget ? &budget : nullptr);
+ const auto& mem_properties = mem_info.memoryProperties;
const size_t num_properties = mem_properties.memoryHeapCount;
device_access_memory = 0;
+ u64 device_initial_usage = 0;
+ u64 local_memory = 0;
for (size_t element = 0; element < num_properties; ++element) {
- if ((mem_properties.memoryHeaps[element].flags & VK_MEMORY_HEAP_DEVICE_LOCAL_BIT) != 0) {
- device_access_memory += mem_properties.memoryHeaps[element].size;
+ const bool is_heap_local =
+ (mem_properties.memoryHeaps[element].flags & VK_MEMORY_HEAP_DEVICE_LOCAL_BIT) != 0;
+ if (!is_integrated && !is_heap_local) {
+ continue;
}
+ valid_heap_memory.push_back(element);
+ if (is_heap_local) {
+ local_memory += mem_properties.memoryHeaps[element].size;
+ }
+ if (ext_memory_budget) {
+ device_initial_usage += budget.heapUsage[element];
+ device_access_memory += budget.heapBudget[element];
+ continue;
+ }
+ device_access_memory += mem_properties.memoryHeaps[element].size;
+ }
+ if (!is_integrated) {
+ return;
}
+ const s64 available_memory = static_cast<s64>(device_access_memory - device_initial_usage);
+ device_access_memory = static_cast<u64>(std::max<s64>(
+ std::min<s64>(available_memory - 8_GiB, 4_GiB), static_cast<s64>(local_memory)));
}
void Device::CollectToolingInfo() {
diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h
index 34b1add16..2d709d069 100644
--- a/src/video_core/vulkan_common/vulkan_device.h
+++ b/src/video_core/vulkan_common/vulkan_device.h
@@ -6,7 +6,6 @@
#include <span>
#include <string>
-#include <string_view>
#include <unordered_map>
#include <vector>
@@ -342,6 +341,12 @@ public:
return device_access_memory;
}
+ bool CanReportMemoryUsage() const {
+ return ext_memory_budget;
+ }
+
+ u64 GetDeviceMemoryUsage() const;
+
u32 GetSetsPerPool() const {
return sets_per_pool;
}
@@ -422,6 +427,9 @@ private:
bool is_topology_list_restart_supported{}; ///< Support for primitive restart with list
///< topologies.
bool is_patch_list_restart_supported{}; ///< Support for primitive restart with list patch.
+ bool is_integrated{}; ///< Is GPU an iGPU.
+ bool is_virtual{}; ///< Is GPU a virtual GPU.
+ bool is_non_gpu{}; ///< Is SoftwareRasterizer, FPGA, non-GPU device.
bool nv_viewport_swizzle{}; ///< Support for VK_NV_viewport_swizzle.
bool nv_viewport_array2{}; ///< Support for VK_NV_viewport_array2.
bool nv_geometry_shader_passthrough{}; ///< Support for VK_NV_geometry_shader_passthrough.
@@ -446,6 +454,7 @@ private:
bool ext_shader_atomic_int64{}; ///< Support for VK_KHR_shader_atomic_int64.
bool ext_conservative_rasterization{}; ///< Support for VK_EXT_conservative_rasterization.
bool ext_provoking_vertex{}; ///< Support for VK_EXT_provoking_vertex.
+ bool ext_memory_budget{}; ///< Support for VK_EXT_memory_budget.
bool nv_device_diagnostics_config{}; ///< Support for VK_NV_device_diagnostics_config.
bool has_broken_cube_compatibility{}; ///< Has broken cube compatiblity bit
bool has_renderdoc{}; ///< Has RenderDoc attached
@@ -457,6 +466,7 @@ private:
// Telemetry parameters
std::string vendor_name; ///< Device's driver name.
std::vector<std::string> supported_extensions; ///< Reported Vulkan extensions.
+ std::vector<size_t> valid_heap_memory; ///< Heaps used.
/// Format properties dictionary.
std::unordered_map<VkFormat, VkFormatProperties> format_properties;
diff --git a/src/video_core/vulkan_common/vulkan_instance.cpp b/src/video_core/vulkan_common/vulkan_instance.cpp
index bfd6e6add..662694f16 100644
--- a/src/video_core/vulkan_common/vulkan_instance.cpp
+++ b/src/video_core/vulkan_common/vulkan_instance.cpp
@@ -2,11 +2,9 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <algorithm>
#include <future>
#include <optional>
#include <span>
-#include <utility>
#include <vector>
#include "common/common_types.h"
diff --git a/src/video_core/vulkan_common/vulkan_library.cpp b/src/video_core/vulkan_common/vulkan_library.cpp
index 22833fa56..d69de05ef 100644
--- a/src/video_core/vulkan_common/vulkan_library.cpp
+++ b/src/video_core/vulkan_common/vulkan_library.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <cstdlib>
#include <string>
#include "common/dynamic_library.h"
diff --git a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
index 300a61205..e6e97b332 100644
--- a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
+++ b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
@@ -227,7 +227,7 @@ void MemoryCommit::Release() {
}
MemoryAllocator::MemoryAllocator(const Device& device_, bool export_allocations_)
- : device{device_}, properties{device_.GetPhysical().GetMemoryProperties()},
+ : device{device_}, properties{device_.GetPhysical().GetMemoryProperties().memoryProperties},
export_allocations{export_allocations_},
buffer_image_granularity{
device_.GetPhysical().GetProperties().limits.bufferImageGranularity} {}
diff --git a/src/video_core/vulkan_common/vulkan_memory_allocator.h b/src/video_core/vulkan_common/vulkan_memory_allocator.h
index 86e8ed119..338daf5ba 100644
--- a/src/video_core/vulkan_common/vulkan_memory_allocator.h
+++ b/src/video_core/vulkan_common/vulkan_memory_allocator.h
@@ -6,7 +6,6 @@
#include <memory>
#include <span>
-#include <utility>
#include <vector>
#include "common/common_types.h"
#include "video_core/vulkan_common/vulkan_wrapper.h"
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.cpp b/src/video_core/vulkan_common/vulkan_wrapper.cpp
index a9faa4807..742cc39da 100644
--- a/src/video_core/vulkan_common/vulkan_wrapper.cpp
+++ b/src/video_core/vulkan_common/vulkan_wrapper.cpp
@@ -3,10 +3,8 @@
// Refer to the license.txt file included.
#include <algorithm>
-#include <exception>
#include <memory>
#include <optional>
-#include <string_view>
#include <utility>
#include <vector>
@@ -239,8 +237,8 @@ bool Load(VkInstance instance, InstanceDispatch& dld) noexcept {
return X(vkCreateDevice) && X(vkDestroyDevice) && X(vkDestroyDevice) &&
X(vkEnumerateDeviceExtensionProperties) && X(vkEnumeratePhysicalDevices) &&
X(vkGetDeviceProcAddr) && X(vkGetPhysicalDeviceFormatProperties) &&
- X(vkGetPhysicalDeviceMemoryProperties) && X(vkGetPhysicalDeviceProperties) &&
- X(vkGetPhysicalDeviceQueueFamilyProperties);
+ X(vkGetPhysicalDeviceMemoryProperties) && X(vkGetPhysicalDeviceMemoryProperties2) &&
+ X(vkGetPhysicalDeviceProperties) && X(vkGetPhysicalDeviceQueueFamilyProperties);
#undef X
}
@@ -928,9 +926,12 @@ std::vector<VkPresentModeKHR> PhysicalDevice::GetSurfacePresentModesKHR(
return modes;
}
-VkPhysicalDeviceMemoryProperties PhysicalDevice::GetMemoryProperties() const noexcept {
- VkPhysicalDeviceMemoryProperties properties;
- dld->vkGetPhysicalDeviceMemoryProperties(physical_device, &properties);
+VkPhysicalDeviceMemoryProperties2 PhysicalDevice::GetMemoryProperties(
+ void* next_structures) const noexcept {
+ VkPhysicalDeviceMemoryProperties2 properties{};
+ properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2;
+ properties.pNext = next_structures;
+ dld->vkGetPhysicalDeviceMemoryProperties2(physical_device, &properties);
return properties;
}
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h
index b7ae01c6c..0a5f9931c 100644
--- a/src/video_core/vulkan_common/vulkan_wrapper.h
+++ b/src/video_core/vulkan_common/vulkan_wrapper.h
@@ -5,7 +5,6 @@
#pragma once
#include <exception>
-#include <iterator>
#include <limits>
#include <memory>
#include <optional>
@@ -173,6 +172,7 @@ struct InstanceDispatch {
PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR{};
PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties{};
PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties{};
+ PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2{};
PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties{};
PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR{};
PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties{};
@@ -951,7 +951,8 @@ public:
std::vector<VkPresentModeKHR> GetSurfacePresentModesKHR(VkSurfaceKHR) const;
- VkPhysicalDeviceMemoryProperties GetMemoryProperties() const noexcept;
+ VkPhysicalDeviceMemoryProperties2 GetMemoryProperties(
+ void* next_structures = nullptr) const noexcept;
private:
VkPhysicalDevice physical_device = nullptr;
diff --git a/src/web_service/web_backend.cpp b/src/web_service/web_backend.cpp
index b1e02c57a..58b0c2f10 100644
--- a/src/web_service/web_backend.cpp
+++ b/src/web_service/web_backend.cpp
@@ -3,7 +3,6 @@
// Refer to the license.txt file included.
#include <array>
-#include <cstdlib>
#include <mutex>
#include <string>
@@ -33,7 +32,7 @@ constexpr std::size_t TIMEOUT_SECONDS = 30;
struct Client::Impl {
Impl(std::string host, std::string username, std::string token)
: host{std::move(host)}, username{std::move(username)}, token{std::move(token)} {
- std::lock_guard lock{jwt_cache.mutex};
+ std::scoped_lock lock{jwt_cache.mutex};
if (this->username == jwt_cache.username && this->token == jwt_cache.token) {
jwt = jwt_cache.jwt;
}
@@ -148,7 +147,7 @@ struct Client::Impl {
if (result.result_code != WebResult::Code::Success) {
LOG_ERROR(WebService, "UpdateJWT failed");
} else {
- std::lock_guard lock{jwt_cache.mutex};
+ std::scoped_lock lock{jwt_cache.mutex};
jwt_cache.username = username;
jwt_cache.token = token;
jwt_cache.jwt = jwt = result.returned_data;
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt
index 30902101d..b1467d016 100644
--- a/src/yuzu/CMakeLists.txt
+++ b/src/yuzu/CMakeLists.txt
@@ -293,7 +293,7 @@ if (YUZU_USE_QT_WEB_ENGINE)
endif ()
if(UNIX AND NOT APPLE)
- install(TARGETS yuzu RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
+ install(TARGETS yuzu)
endif()
if (YUZU_USE_BUNDLED_QT)
diff --git a/src/yuzu/applets/qt_controller.cpp b/src/yuzu/applets/qt_controller.cpp
index 4104928d1..90a27e573 100644
--- a/src/yuzu/applets/qt_controller.cpp
+++ b/src/yuzu/applets/qt_controller.cpp
@@ -6,7 +6,6 @@
#include <thread>
#include "common/assert.h"
-#include "common/param_package.h"
#include "common/string_util.h"
#include "core/core.h"
#include "core/hid/emulated_controller.h"
diff --git a/src/yuzu/applets/qt_profile_select.cpp b/src/yuzu/applets/qt_profile_select.cpp
index 4cd8f7784..44502883c 100644
--- a/src/yuzu/applets/qt_profile_select.cpp
+++ b/src/yuzu/applets/qt_profile_select.cpp
@@ -10,6 +10,7 @@
#include <QLineEdit>
#include <QScrollArea>
#include <QStandardItemModel>
+#include <QTreeView>
#include <QVBoxLayout>
#include "common/fs/path_util.h"
#include "common/string_util.h"
diff --git a/src/yuzu/applets/qt_profile_select.h b/src/yuzu/applets/qt_profile_select.h
index 56496ed31..0a9d4f982 100644
--- a/src/yuzu/applets/qt_profile_select.h
+++ b/src/yuzu/applets/qt_profile_select.h
@@ -7,7 +7,6 @@
#include <vector>
#include <QDialog>
#include <QList>
-#include <QTreeView>
#include "core/frontend/applets/profile_select.h"
#include "core/hle/service/acc/profile_manager.h"
@@ -19,6 +18,7 @@ class QLabel;
class QScrollArea;
class QStandardItem;
class QStandardItemModel;
+class QTreeView;
class QVBoxLayout;
namespace Core::HID {
diff --git a/src/yuzu/applets/qt_web_browser.cpp b/src/yuzu/applets/qt_web_browser.cpp
index cb3c5d826..116ef54db 100644
--- a/src/yuzu/applets/qt_web_browser.cpp
+++ b/src/yuzu/applets/qt_web_browser.cpp
@@ -11,17 +11,15 @@
#include <QWebEngineScriptCollection>
#include <QWebEngineSettings>
#include <QWebEngineUrlScheme>
+
+#include "core/hid/input_interpreter.h"
+#include "yuzu/applets/qt_web_browser_scripts.h"
#endif
#include "common/fs/path_util.h"
-#include "common/param_package.h"
#include "core/core.h"
-#include "core/hid/hid_types.h"
-#include "core/hid/input_interpreter.h"
#include "input_common/drivers/keyboard.h"
-#include "input_common/main.h"
#include "yuzu/applets/qt_web_browser.h"
-#include "yuzu/applets/qt_web_browser_scripts.h"
#include "yuzu/main.h"
#include "yuzu/util/url_request_interceptor.h"
diff --git a/src/yuzu/applets/qt_web_browser.h b/src/yuzu/applets/qt_web_browser.h
index fa18aecac..a47059412 100644
--- a/src/yuzu/applets/qt_web_browser.h
+++ b/src/yuzu/applets/qt_web_browser.h
@@ -5,7 +5,6 @@
#pragma once
#include <atomic>
-#include <memory>
#include <thread>
#include <QObject>
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp
index 114f17c06..27b0300d2 100644
--- a/src/yuzu/bootmanager.cpp
+++ b/src/yuzu/bootmanager.cpp
@@ -6,7 +6,6 @@
#include <QApplication>
#include <QHBoxLayout>
-#include <QKeyEvent>
#include <QMessageBox>
#include <QPainter>
#include <QScreen>
@@ -28,7 +27,6 @@
#include "common/assert.h"
#include "common/microprofile.h"
#include "common/scm_rev.h"
-#include "common/scope_exit.h"
#include "common/settings.h"
#include "core/core.h"
#include "core/frontend/framebuffer_layout.h"
@@ -38,7 +36,6 @@
#include "input_common/drivers/touch_screen.h"
#include "input_common/main.h"
#include "video_core/renderer_base.h"
-#include "video_core/video_core.h"
#include "yuzu/bootmanager.h"
#include "yuzu/main.h"
diff --git a/src/yuzu/bootmanager.h b/src/yuzu/bootmanager.h
index 92297a43b..4b0ce0293 100644
--- a/src/yuzu/bootmanager.h
+++ b/src/yuzu/bootmanager.h
@@ -13,7 +13,6 @@
#include <QThread>
#include <QTouchEvent>
#include <QWidget>
-#include <QWindow>
#include "common/thread.h"
#include "core/frontend/emu_window.h"
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index 4b943c6ba..d2e735f48 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -775,6 +775,7 @@ void Config::ReadUIValues() {
ReadBasicSetting(UISettings::values.pause_when_in_background);
ReadBasicSetting(UISettings::values.mute_when_in_background);
ReadBasicSetting(UISettings::values.hide_mouse);
+ ReadBasicSetting(UISettings::values.disable_web_applet);
qt_config->endGroup();
}
@@ -1308,6 +1309,7 @@ void Config::SaveUIValues() {
WriteBasicSetting(UISettings::values.pause_when_in_background);
WriteBasicSetting(UISettings::values.mute_when_in_background);
WriteBasicSetting(UISettings::values.hide_mouse);
+ WriteBasicSetting(UISettings::values.disable_web_applet);
qt_config->endGroup();
}
diff --git a/src/yuzu/configuration/configuration_shared.cpp b/src/yuzu/configuration/configuration_shared.cpp
index 251aab912..5190bd18b 100644
--- a/src/yuzu/configuration/configuration_shared.cpp
+++ b/src/yuzu/configuration/configuration_shared.cpp
@@ -3,7 +3,6 @@
// Refer to the license.txt file included.
#include <QCheckBox>
-#include <QComboBox>
#include <QObject>
#include <QString>
#include "common/settings.h"
diff --git a/src/yuzu/configuration/configuration_shared.h b/src/yuzu/configuration/configuration_shared.h
index 5423dbc92..903a9baae 100644
--- a/src/yuzu/configuration/configuration_shared.h
+++ b/src/yuzu/configuration/configuration_shared.h
@@ -6,7 +6,6 @@
#include <QCheckBox>
#include <QComboBox>
-#include <QString>
#include "common/settings.h"
namespace ConfigurationShared {
diff --git a/src/yuzu/configuration/configure_audio.cpp b/src/yuzu/configuration/configure_audio.cpp
index c33488718..2f9285e77 100644
--- a/src/yuzu/configuration/configure_audio.cpp
+++ b/src/yuzu/configuration/configure_audio.cpp
@@ -4,8 +4,6 @@
#include <memory>
-#include <QSignalBlocker>
-
#include "audio_core/sink.h"
#include "audio_core/sink_details.h"
#include "common/settings.h"
diff --git a/src/yuzu/configuration/configure_cpu.cpp b/src/yuzu/configuration/configure_cpu.cpp
index bf74ccc7c..0de7fbfed 100644
--- a/src/yuzu/configuration/configure_cpu.cpp
+++ b/src/yuzu/configuration/configure_cpu.cpp
@@ -2,11 +2,7 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <QComboBox>
-#include <QMessageBox>
-
#include "common/common_types.h"
-#include "common/logging/log.h"
#include "common/settings.h"
#include "core/core.h"
#include "ui_configure_cpu.h"
diff --git a/src/yuzu/configuration/configure_cpu.h b/src/yuzu/configuration/configure_cpu.h
index 733e38be4..3209c11d5 100644
--- a/src/yuzu/configuration/configure_cpu.h
+++ b/src/yuzu/configuration/configure_cpu.h
@@ -6,7 +6,6 @@
#include <memory>
#include <QWidget>
-#include "common/settings.h"
namespace Core {
class System;
diff --git a/src/yuzu/configuration/configure_cpu.ui b/src/yuzu/configuration/configure_cpu.ui
index 5d80a8c91..8ae569ee6 100644
--- a/src/yuzu/configuration/configure_cpu.ui
+++ b/src/yuzu/configuration/configure_cpu.ui
@@ -52,6 +52,11 @@
<string>Unsafe</string>
</property>
</item>
+ <item>
+ <property name="text">
+ <string>Paranoid (disables most optimizations)</string>
+ </property>
+ </item>
</widget>
</item>
</layout>
diff --git a/src/yuzu/configuration/configure_cpu_debug.cpp b/src/yuzu/configuration/configure_cpu_debug.cpp
index 616a0be75..087d9496c 100644
--- a/src/yuzu/configuration/configure_cpu_debug.cpp
+++ b/src/yuzu/configuration/configure_cpu_debug.cpp
@@ -2,10 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <QComboBox>
-
-#include "common/common_types.h"
-#include "common/logging/log.h"
#include "common/settings.h"
#include "core/core.h"
#include "ui_configure_cpu_debug.h"
diff --git a/src/yuzu/configuration/configure_debug.cpp b/src/yuzu/configuration/configure_debug.cpp
index c1cf4050c..bd50f7a68 100644
--- a/src/yuzu/configuration/configure_debug.cpp
+++ b/src/yuzu/configuration/configure_debug.cpp
@@ -59,6 +59,13 @@ void ConfigureDebug::SetConfiguration() {
ui->disable_loop_safety_checks->setChecked(
Settings::values.disable_shader_loop_safety_checks.GetValue());
ui->extended_logging->setChecked(Settings::values.extended_logging.GetValue());
+
+#ifdef YUZU_USE_QT_WEB_ENGINE
+ ui->disable_web_applet->setChecked(UISettings::values.disable_web_applet.GetValue());
+#else
+ ui->disable_web_applet->setEnabled(false);
+ ui->disable_web_applet->setText(QString::fromUtf8("Web applet not compiled"));
+#endif
}
void ConfigureDebug::ApplyConfiguration() {
@@ -80,6 +87,7 @@ void ConfigureDebug::ApplyConfiguration() {
ui->disable_loop_safety_checks->isChecked();
Settings::values.disable_macro_jit = ui->disable_macro_jit->isChecked();
Settings::values.extended_logging = ui->extended_logging->isChecked();
+ UISettings::values.disable_web_applet = ui->disable_web_applet->isChecked();
Debugger::ToggleConsole();
Common::Log::Filter filter;
filter.ParseFilterString(Settings::values.log_filter.GetValue());
diff --git a/src/yuzu/configuration/configure_debug.ui b/src/yuzu/configuration/configure_debug.ui
index 4dd870855..c1d90d588 100644
--- a/src/yuzu/configuration/configure_debug.ui
+++ b/src/yuzu/configuration/configure_debug.ui
@@ -8,49 +8,49 @@
<property name="title">
<string>Logging</string>
</property>
- <layout class="QGridLayout" name="gridLayout_1">
- <item row="0" column="0" colspan="2">
- <layout class="QHBoxLayout" name="horizontalLayout_1">
- <item>
- <widget class="QLabel" name="label_1">
- <property name="text">
- <string>Global Log Filter</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLineEdit" name="log_filter_edit"/>
- </item>
- </layout>
- </item>
- <item row="1" column="0">
- <widget class="QCheckBox" name="toggle_console">
- <property name="text">
- <string>Show Log in Console</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1">
- <widget class="QPushButton" name="open_log_button">
- <property name="text">
- <string>Open Log Location</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0">
- <widget class="QCheckBox" name="extended_logging">
- <property name="enabled">
- <bool>true</bool>
- </property>
- <property name="toolTip">
- <string>When checked, the max size of the log increases from 100 MB to 1 GB</string>
- </property>
+ <layout class="QGridLayout" name="gridLayout_1">
+ <item row="0" column="0" colspan="2">
+ <layout class="QHBoxLayout" name="horizontalLayout_1">
+ <item>
+ <widget class="QLabel" name="label_1">
<property name="text">
- <string>Enable Extended Logging**</string>
+ <string>Global Log Filter</string>
</property>
- </widget>
- </item>
- </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="log_filter_edit"/>
+ </item>
+ </layout>
+ </item>
+ <item row="1" column="0">
+ <widget class="QCheckBox" name="toggle_console">
+ <property name="text">
+ <string>Show Log in Console</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QPushButton" name="open_log_button">
+ <property name="text">
+ <string>Open Log Location</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <widget class="QCheckBox" name="extended_logging">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip">
+ <string>When checked, the max size of the log increases from 100 MB to 1 GB</string>
+ </property>
+ <property name="text">
+ <string>Enable Extended Logging**</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</widget>
</item>
<item>
@@ -183,7 +183,7 @@
<string>Advanced</string>
</property>
<layout class="QGridLayout" name="gridLayout_4">
- <item> row="0" column="0">
+ <item row="0" column="0">
<widget class="QCheckBox" name="quest_flag">
<property name="text">
<string>Kiosk (Quest) Mode</string>
@@ -214,7 +214,14 @@
<item row="1" column="1">
<widget class="QCheckBox" name="enable_all_controllers">
<property name="text">
- <string>Enable all Controller Types</string>
+ <string>Enable All Controller Types</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QCheckBox" name="disable_web_applet">
+ <property name="text">
+ <string>Disable Web Applet</string>
</property>
</widget>
</item>
diff --git a/src/yuzu/configuration/configure_dialog.cpp b/src/yuzu/configuration/configure_dialog.cpp
index 19133ccf5..69458a3ff 100644
--- a/src/yuzu/configuration/configure_dialog.cpp
+++ b/src/yuzu/configuration/configure_dialog.cpp
@@ -3,13 +3,6 @@
// Refer to the license.txt file included.
#include <memory>
-#include <QAbstractButton>
-#include <QDialogButtonBox>
-#include <QHash>
-#include <QListWidgetItem>
-#include <QPushButton>
-#include <QSignalBlocker>
-#include <QTabWidget>
#include "common/logging/log.h"
#include "common/settings.h"
#include "core/core.h"
diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp
index 08d5444ec..a31fabd3f 100644
--- a/src/yuzu/configuration/configure_general.cpp
+++ b/src/yuzu/configuration/configure_general.cpp
@@ -4,13 +4,10 @@
#include <functional>
#include <utility>
-#include <QCheckBox>
#include <QMessageBox>
-#include <QSpinBox>
#include "common/settings.h"
#include "core/core.h"
#include "ui_configure_general.h"
-#include "yuzu/configuration/config.h"
#include "yuzu/configuration/configuration_shared.h"
#include "yuzu/configuration/configure_general.h"
#include "yuzu/uisettings.h"
diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp
index 59f975a6e..2f1435b10 100644
--- a/src/yuzu/configuration/configure_graphics.cpp
+++ b/src/yuzu/configuration/configure_graphics.cpp
@@ -6,7 +6,6 @@
#include "video_core/vulkan_common/vulkan_wrapper.h"
#include <QColorDialog>
-#include <QComboBox>
#include <QVulkanInstance>
#include "common/common_types.h"
diff --git a/src/yuzu/configuration/configure_hotkeys.cpp b/src/yuzu/configuration/configure_hotkeys.cpp
index 53e629a5e..6679e9c53 100644
--- a/src/yuzu/configuration/configure_hotkeys.cpp
+++ b/src/yuzu/configuration/configure_hotkeys.cpp
@@ -35,8 +35,9 @@ ConfigureHotkeys::ConfigureHotkeys(Core::HID::HIDCore& hid_core, QWidget* parent
ui->hotkey_list->setContextMenuPolicy(Qt::CustomContextMenu);
ui->hotkey_list->setModel(model);
- ui->hotkey_list->setColumnWidth(name_column, 200);
- ui->hotkey_list->resizeColumnToContents(hotkey_column);
+ ui->hotkey_list->header()->setStretchLastSection(false);
+ ui->hotkey_list->header()->setSectionResizeMode(name_column, QHeaderView::ResizeMode::Stretch);
+ ui->hotkey_list->header()->setMinimumSectionSize(150);
connect(ui->button_restore_defaults, &QPushButton::clicked, this,
&ConfigureHotkeys::RestoreDefaults);
@@ -76,8 +77,8 @@ void ConfigureHotkeys::Populate(const HotkeyRegistry& registry) {
}
ui->hotkey_list->expandAll();
- ui->hotkey_list->resizeColumnToContents(name_column);
ui->hotkey_list->resizeColumnToContents(hotkey_column);
+ ui->hotkey_list->resizeColumnToContents(controller_column);
}
void ConfigureHotkeys::changeEvent(QEvent* event) {
diff --git a/src/yuzu/configuration/configure_input.cpp b/src/yuzu/configuration/configure_input.cpp
index 7c5776189..4ca74a5f7 100644
--- a/src/yuzu/configuration/configure_input.cpp
+++ b/src/yuzu/configuration/configure_input.cpp
@@ -2,13 +2,9 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <algorithm>
#include <memory>
#include <thread>
-#include <QSignalBlocker>
-#include <QTimer>
-
#include "core/core.h"
#include "core/hid/emulated_controller.h"
#include "core/hid/hid_core.h"
diff --git a/src/yuzu/configuration/configure_input_player.cpp b/src/yuzu/configuration/configure_input_player.cpp
index 0aa4ac3e4..8ef3596dd 100644
--- a/src/yuzu/configuration/configure_input_player.cpp
+++ b/src/yuzu/configuration/configure_input_player.cpp
@@ -7,7 +7,6 @@
#include <utility>
#include <QGridLayout>
#include <QInputDialog>
-#include <QKeyEvent>
#include <QMenu>
#include <QMessageBox>
#include <QTimer>
@@ -23,7 +22,6 @@
#include "yuzu/configuration/config.h"
#include "yuzu/configuration/configure_input_player.h"
#include "yuzu/configuration/configure_input_player_widget.h"
-#include "yuzu/configuration/configure_vibration.h"
#include "yuzu/configuration/input_profiles.h"
#include "yuzu/util/limitable_input_dialog.h"
diff --git a/src/yuzu/configuration/configure_motion_touch.cpp b/src/yuzu/configuration/configure_motion_touch.cpp
index 4340de304..27559c37b 100644
--- a/src/yuzu/configuration/configure_motion_touch.cpp
+++ b/src/yuzu/configuration/configure_motion_touch.cpp
@@ -2,16 +2,11 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <array>
#include <sstream>
#include <QCloseEvent>
-#include <QLabel>
#include <QMessageBox>
-#include <QPushButton>
-#include <QRegularExpression>
#include <QStringListModel>
-#include <QVBoxLayout>
#include "common/logging/log.h"
#include "common/settings.h"
diff --git a/src/yuzu/configuration/configure_motion_touch.h b/src/yuzu/configuration/configure_motion_touch.h
index 8b707d2ff..91d1ae671 100644
--- a/src/yuzu/configuration/configure_motion_touch.h
+++ b/src/yuzu/configuration/configure_motion_touch.h
@@ -6,7 +6,6 @@
#include <memory>
#include <QDialog>
-#include "common/param_package.h"
class QLabel;
class QPushButton;
diff --git a/src/yuzu/configuration/configure_network.cpp b/src/yuzu/configuration/configure_network.cpp
index 7020d2964..1f5799546 100644
--- a/src/yuzu/configuration/configure_network.cpp
+++ b/src/yuzu/configuration/configure_network.cpp
@@ -2,7 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <QGraphicsItem>
#include <QtConcurrent/QtConcurrent>
#include "common/settings.h"
#include "core/core.h"
diff --git a/src/yuzu/configuration/configure_network.h b/src/yuzu/configuration/configure_network.h
index 8507c62eb..1d07d0b53 100644
--- a/src/yuzu/configuration/configure_network.h
+++ b/src/yuzu/configuration/configure_network.h
@@ -5,7 +5,6 @@
#pragma once
#include <memory>
-#include <QFutureWatcher>
#include <QWidget>
namespace Ui {
diff --git a/src/yuzu/configuration/configure_per_game.cpp b/src/yuzu/configuration/configure_per_game.cpp
index f4cf25f05..55b2aa74f 100644
--- a/src/yuzu/configuration/configure_per_game.cpp
+++ b/src/yuzu/configuration/configure_per_game.cpp
@@ -12,17 +12,11 @@
#include <QAbstractButton>
#include <QCheckBox>
-#include <QDialogButtonBox>
-#include <QHeaderView>
-#include <QMenu>
#include <QPushButton>
-#include <QStandardItemModel>
#include <QString>
#include <QTimer>
-#include <QTreeView>
#include "common/fs/fs_util.h"
-#include "common/fs/path_util.h"
#include "core/core.h"
#include "core/file_sys/control_metadata.h"
#include "core/file_sys/patch_manager.h"
diff --git a/src/yuzu/configuration/configure_per_game.h b/src/yuzu/configuration/configure_per_game.h
index c1a57d87b..b34b28577 100644
--- a/src/yuzu/configuration/configure_per_game.h
+++ b/src/yuzu/configuration/configure_per_game.h
@@ -6,7 +6,6 @@
#include <memory>
#include <string>
-#include <vector>
#include <QDialog>
#include <QList>
diff --git a/src/yuzu/configuration/configure_per_game_addons.cpp b/src/yuzu/configuration/configure_per_game_addons.cpp
index 65e615963..7893a85bb 100644
--- a/src/yuzu/configuration/configure_per_game_addons.cpp
+++ b/src/yuzu/configuration/configure_per_game_addons.cpp
@@ -24,7 +24,6 @@
#include "yuzu/configuration/configure_input.h"
#include "yuzu/configuration/configure_per_game_addons.h"
#include "yuzu/uisettings.h"
-#include "yuzu/util/util.h"
ConfigurePerGameAddons::ConfigurePerGameAddons(Core::System& system_, QWidget* parent)
: QWidget(parent), ui{std::make_unique<Ui::ConfigurePerGameAddons>()}, system{system_} {
@@ -48,6 +47,10 @@ ConfigurePerGameAddons::ConfigurePerGameAddons(Core::System& system_, QWidget* p
item_model->setHeaderData(0, Qt::Horizontal, tr("Patch Name"));
item_model->setHeaderData(1, Qt::Horizontal, tr("Version"));
+ tree_view->header()->setStretchLastSection(false);
+ tree_view->header()->setSectionResizeMode(0, QHeaderView::ResizeMode::Stretch);
+ tree_view->header()->setMinimumSectionSize(150);
+
// We must register all custom types with the Qt Automoc system so that we are able to use it
// with signals/slots. In this case, QList falls under the umbrella of custom types.
qRegisterMetaType<QList<QStandardItem*>>("QList<QStandardItem*>");
@@ -139,5 +142,5 @@ void ConfigurePerGameAddons::LoadConfiguration() {
item_model->appendRow(list_items.back());
}
- tree_view->setColumnWidth(0, 5 * tree_view->width() / 16);
+ tree_view->resizeColumnToContents(1);
}
diff --git a/src/yuzu/configuration/configure_profile_manager.cpp b/src/yuzu/configuration/configure_profile_manager.cpp
index d9f6dee4e..5442fe328 100644
--- a/src/yuzu/configuration/configure_profile_manager.cpp
+++ b/src/yuzu/configuration/configure_profile_manager.cpp
@@ -5,12 +5,10 @@
#include <algorithm>
#include <QFileDialog>
#include <QGraphicsItem>
-#include <QGraphicsScene>
#include <QHeaderView>
#include <QMessageBox>
#include <QStandardItemModel>
#include <QTreeView>
-#include <QVBoxLayout>
#include "common/assert.h"
#include "common/fs/path_util.h"
#include "common/settings.h"
diff --git a/src/yuzu/configuration/configure_system.cpp b/src/yuzu/configuration/configure_system.cpp
index 56c762d64..19aa589f9 100644
--- a/src/yuzu/configuration/configure_system.cpp
+++ b/src/yuzu/configuration/configure_system.cpp
@@ -2,14 +2,12 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <array>
#include <chrono>
#include <optional>
#include <QFileDialog>
#include <QGraphicsItem>
#include <QMessageBox>
-#include "common/assert.h"
#include "common/settings.h"
#include "core/core.h"
#include "core/hle/service/time/time_manager.h"
diff --git a/src/yuzu/configuration/configure_system.h b/src/yuzu/configuration/configure_system.h
index bb24c9ae7..5a1633192 100644
--- a/src/yuzu/configuration/configure_system.h
+++ b/src/yuzu/configuration/configure_system.h
@@ -6,7 +6,6 @@
#include <memory>
-#include <QList>
#include <QWidget>
namespace Core {
diff --git a/src/yuzu/configuration/configure_tas.h b/src/yuzu/configuration/configure_tas.h
index 1546bf16f..23a3673a7 100644
--- a/src/yuzu/configuration/configure_tas.h
+++ b/src/yuzu/configuration/configure_tas.h
@@ -6,6 +6,8 @@
#include <QDialog>
+class QLineEdit;
+
namespace Ui {
class ConfigureTas;
}
diff --git a/src/yuzu/configuration/configure_touch_from_button.cpp b/src/yuzu/configuration/configure_touch_from_button.cpp
index 211a00217..c17da6fd1 100644
--- a/src/yuzu/configuration/configure_touch_from_button.cpp
+++ b/src/yuzu/configuration/configure_touch_from_button.cpp
@@ -6,7 +6,6 @@
#include <QKeyEvent>
#include <QMessageBox>
#include <QMouseEvent>
-#include <QResizeEvent>
#include <QStandardItemModel>
#include <QTimer>
#include "common/param_package.h"
diff --git a/src/yuzu/configuration/configure_vibration.cpp b/src/yuzu/configuration/configure_vibration.cpp
index 779b6401c..d134ed02f 100644
--- a/src/yuzu/configuration/configure_vibration.cpp
+++ b/src/yuzu/configuration/configure_vibration.cpp
@@ -2,12 +2,6 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <algorithm>
-#include <unordered_map>
-
-#include <fmt/format.h>
-
-#include "common/param_package.h"
#include "common/settings.h"
#include "core/hid/emulated_controller.h"
#include "core/hid/hid_core.h"
diff --git a/src/yuzu/configuration/input_profiles.h b/src/yuzu/configuration/input_profiles.h
index a567bd5a9..7353aa77b 100644
--- a/src/yuzu/configuration/input_profiles.h
+++ b/src/yuzu/configuration/input_profiles.h
@@ -5,7 +5,6 @@
#pragma once
#include <string>
-#include <string_view>
#include <unordered_map>
namespace Core {
diff --git a/src/yuzu/debugger/wait_tree.cpp b/src/yuzu/debugger/wait_tree.cpp
index 2d1a2d9cb..8f486a131 100644
--- a/src/yuzu/debugger/wait_tree.cpp
+++ b/src/yuzu/debugger/wait_tree.cpp
@@ -7,9 +7,7 @@
#include "yuzu/debugger/wait_tree.h"
#include "yuzu/uisettings.h"
-#include "yuzu/util/util.h"
-#include "common/assert.h"
#include "core/arm/arm_interface.h"
#include "core/core.h"
#include "core/hle/kernel/k_class_token.h"
diff --git a/src/yuzu/debugger/wait_tree.h b/src/yuzu/debugger/wait_tree.h
index ea4d2e299..4a36dfc48 100644
--- a/src/yuzu/debugger/wait_tree.h
+++ b/src/yuzu/debugger/wait_tree.h
@@ -8,7 +8,6 @@
#include <memory>
#include <vector>
-#include <QAbstractItemModel>
#include <QDockWidget>
#include <QTreeView>
diff --git a/src/yuzu/game_list.cpp b/src/yuzu/game_list.cpp
index e3661b390..4a6d74a7e 100644
--- a/src/yuzu/game_list.cpp
+++ b/src/yuzu/game_list.cpp
@@ -10,10 +10,10 @@
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
-#include <QKeyEvent>
#include <QList>
#include <QMenu>
#include <QThreadPool>
+#include <QToolButton>
#include <fmt/format.h>
#include "common/common_types.h"
#include "common/logging/log.h"
diff --git a/src/yuzu/game_list.h b/src/yuzu/game_list.h
index a94ea1477..d19dbe4b0 100644
--- a/src/yuzu/game_list.h
+++ b/src/yuzu/game_list.h
@@ -5,16 +5,11 @@
#pragma once
#include <QFileSystemWatcher>
-#include <QHBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QList>
-#include <QModelIndex>
-#include <QSettings>
-#include <QStandardItem>
#include <QStandardItemModel>
#include <QString>
-#include <QToolButton>
#include <QTreeView>
#include <QVBoxLayout>
#include <QVector>
diff --git a/src/yuzu/game_list_p.h b/src/yuzu/game_list_p.h
index 9dc3cc7c3..211a84dde 100644
--- a/src/yuzu/game_list_p.h
+++ b/src/yuzu/game_list_p.h
@@ -11,7 +11,6 @@
#include <QCoreApplication>
#include <QFileInfo>
-#include <QImage>
#include <QObject>
#include <QStandardItem>
#include <QString>
diff --git a/src/yuzu/game_list_worker.cpp b/src/yuzu/game_list_worker.cpp
index fd92b36df..5e9b3eee8 100644
--- a/src/yuzu/game_list_worker.cpp
+++ b/src/yuzu/game_list_worker.cpp
@@ -23,7 +23,6 @@
#include "core/file_sys/patch_manager.h"
#include "core/file_sys/registered_cache.h"
#include "core/file_sys/submission_package.h"
-#include "core/hle/service/filesystem/filesystem.h"
#include "core/loader/loader.h"
#include "yuzu/compatibility_list.h"
#include "yuzu/game_list.h"
diff --git a/src/yuzu/game_list_worker.h b/src/yuzu/game_list_worker.h
index 1383e9fbc..2e0f89cbd 100644
--- a/src/yuzu/game_list_worker.h
+++ b/src/yuzu/game_list_worker.h
@@ -5,18 +5,14 @@
#pragma once
#include <atomic>
-#include <map>
#include <memory>
#include <string>
-#include <unordered_map>
#include <QList>
#include <QObject>
#include <QRunnable>
#include <QString>
-#include <QVector>
-#include "common/common_types.h"
#include "yuzu/compatibility_list.h"
namespace Core {
diff --git a/src/yuzu/hotkeys.cpp b/src/yuzu/hotkeys.cpp
index 6ed9611c7..d59aa5d18 100644
--- a/src/yuzu/hotkeys.cpp
+++ b/src/yuzu/hotkeys.cpp
@@ -3,7 +3,6 @@
// Refer to the license.txt file included.
#include <sstream>
-#include <QKeySequence>
#include <QShortcut>
#include <QTreeWidgetItem>
#include <QtGlobal>
diff --git a/src/yuzu/install_dialog.cpp b/src/yuzu/install_dialog.cpp
index 06b0b1874..55088bd87 100644
--- a/src/yuzu/install_dialog.cpp
+++ b/src/yuzu/install_dialog.cpp
@@ -5,7 +5,6 @@
#include <QCheckBox>
#include <QDialogButtonBox>
#include <QFileInfo>
-#include <QHBoxLayout>
#include <QLabel>
#include <QListWidget>
#include <QVBoxLayout>
diff --git a/src/yuzu/loading_screen.cpp b/src/yuzu/loading_screen.cpp
index b001b8c23..cd2148deb 100644
--- a/src/yuzu/loading_screen.cpp
+++ b/src/yuzu/loading_screen.cpp
@@ -6,19 +6,12 @@
#include <QBuffer>
#include <QByteArray>
#include <QGraphicsOpacityEffect>
-#include <QHBoxLayout>
#include <QIODevice>
#include <QImage>
-#include <QLabel>
#include <QPainter>
-#include <QPalette>
#include <QPixmap>
-#include <QProgressBar>
#include <QPropertyAnimation>
#include <QStyleOption>
-#include <QTime>
-#include <QtConcurrent/QtConcurrentRun>
-#include "common/logging/log.h"
#include "core/frontend/framebuffer_layout.h"
#include "core/loader/loader.h"
#include "ui_loading_screen.h"
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 1d459bdb3..62d15f8cd 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -20,11 +20,11 @@
#include "configuration/configure_input.h"
#include "configuration/configure_per_game.h"
#include "configuration/configure_tas.h"
-#include "configuration/configure_vibration.h"
#include "core/file_sys/vfs.h"
#include "core/file_sys/vfs_real.h"
#include "core/frontend/applets/controller.h"
#include "core/frontend/applets/general_frontend.h"
+#include "core/frontend/applets/mii_edit.h"
#include "core/frontend/applets/software_keyboard.h"
#include "core/hid/emulated_controller.h"
#include "core/hid/hid_core.h"
@@ -53,8 +53,6 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual
#include <QClipboard>
#include <QDesktopServices>
#include <QDesktopWidget>
-#include <QDialogButtonBox>
-#include <QDir>
#include <QFile>
#include <QFileDialog>
#include <QInputDialog>
@@ -76,11 +74,9 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual
#include <fmt/format.h>
#include "common/detached_tasks.h"
#include "common/fs/fs.h"
-#include "common/fs/fs_paths.h"
#include "common/fs/path_util.h"
#include "common/literals.h"
#include "common/logging/backend.h"
-#include "common/logging/filter.h"
#include "common/logging/log.h"
#include "common/memory_detect.h"
#include "common/microprofile.h"
@@ -297,8 +293,6 @@ GMainWindow::GMainWindow()
MigrateConfigFiles();
- ui->action_Fullscreen->setChecked(false);
-
#if defined(HAVE_SDL2) && !defined(_WIN32)
SDL_InitSubSystem(SDL_INIT_VIDEO);
// SDL disables the screen saver by default, and setting the hint
@@ -316,17 +310,20 @@ GMainWindow::GMainWindow()
}
QString game_path;
+ bool has_gamepath = false;
+ bool is_fullscreen = false;
for (int i = 1; i < args.size(); ++i) {
// Preserves drag/drop functionality
if (args.size() == 2 && !args[1].startsWith(QChar::fromLatin1('-'))) {
game_path = args[1];
+ has_gamepath = true;
break;
}
// Launch game in fullscreen mode
if (args[i] == QStringLiteral("-f")) {
- ui->action_Fullscreen->setChecked(true);
+ is_fullscreen = true;
continue;
}
@@ -369,9 +366,15 @@ GMainWindow::GMainWindow()
}
game_path = args[++i];
+ has_gamepath = true;
}
}
+ // Override fullscreen setting if gamepath or argument is provided
+ if (has_gamepath || is_fullscreen) {
+ ui->action_Fullscreen->setChecked(is_fullscreen);
+ }
+
if (!game_path.isEmpty()) {
BootGame(game_path);
}
@@ -586,7 +589,7 @@ void GMainWindow::WebBrowserOpenWebPage(const std::string& main_url,
#ifdef YUZU_USE_QT_WEB_ENGINE
// Raw input breaks with the web applet, Disable web applets if enabled
- if (disable_web_applet || Settings::values.enable_raw_input) {
+ if (UISettings::values.disable_web_applet || Settings::values.enable_raw_input) {
emit WebBrowserClosed(Service::AM::Applets::WebExitReason::WindowClosed,
"http://localhost/");
return;
@@ -651,12 +654,12 @@ void GMainWindow::WebBrowserOpenWebPage(const std::string& main_url,
connect(exit_action, &QAction::triggered, this, [this, &web_browser_view] {
const auto result = QMessageBox::warning(
this, tr("Disable Web Applet"),
- tr("Disabling the web applet will cause it to not be shown again for the rest of the "
- "emulated session. This can lead to undefined behavior and should only be used with "
- "Super Mario 3D All-Stars. Are you sure you want to disable the web applet?"),
+ tr("Disabling the web applet can lead to undefined behavior and should only be used "
+ "with Super Mario 3D All-Stars. Are you sure you want to disable the web "
+ "applet?\n(This can be re-enabled in the Debug settings.)"),
QMessageBox::Yes | QMessageBox::No);
if (result == QMessageBox::Yes) {
- disable_web_applet = true;
+ UISettings::values.disable_web_applet = true;
web_browser_view.SetFinished(true);
}
});
@@ -1284,6 +1287,7 @@ bool GMainWindow::LoadROM(const QString& filename, u64 program_id, std::size_t p
system->SetAppletFrontendSet({
std::make_unique<QtControllerSelector>(*this), // Controller Selector
std::make_unique<QtErrorDisplay>(*this), // Error Display
+ nullptr, // Mii Editor
nullptr, // Parental Controls
nullptr, // Photo Viewer
std::make_unique<QtProfileSelector>(*this), // Profile Selector
diff --git a/src/yuzu/main.h b/src/yuzu/main.h
index 6a35b9e3d..ab95a7518 100644
--- a/src/yuzu/main.h
+++ b/src/yuzu/main.h
@@ -6,14 +6,12 @@
#include <memory>
#include <optional>
-#include <unordered_map>
#include <QMainWindow>
#include <QTimer>
#include <QTranslator>
#include "common/common_types.h"
-#include "core/hle/service/acc/profile_manager.h"
#include "yuzu/compatibility_list.h"
#include "yuzu/hotkeys.h"
@@ -400,9 +398,6 @@ private:
// Last game booted, used for multi-process apps
QString last_filename_booted;
- // Disables the web applet for the rest of the emulated session
- bool disable_web_applet{};
-
// Applets
QtSoftwareKeyboardDialog* software_keyboard = nullptr;
diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h
index 06e8b46da..cc5aee382 100644
--- a/src/yuzu/uisettings.h
+++ b/src/yuzu/uisettings.h
@@ -114,6 +114,7 @@ struct Values {
bool configuration_applied;
bool reset_to_defaults;
+ Settings::BasicSetting<bool> disable_web_applet{true, "disable_web_applet"};
};
extern Values values;
diff --git a/src/yuzu/util/controller_navigation.cpp b/src/yuzu/util/controller_navigation.cpp
index c2b13123d..9a1868cae 100644
--- a/src/yuzu/util/controller_navigation.cpp
+++ b/src/yuzu/util/controller_navigation.cpp
@@ -39,7 +39,7 @@ void ControllerNavigation::TriggerButton(Settings::NativeButton::Values native_b
}
void ControllerNavigation::ControllerUpdateEvent(Core::HID::ControllerTriggerType type) {
- std::lock_guard lock{mutex};
+ std::scoped_lock lock{mutex};
if (!Settings::values.controller_navigation) {
return;
}
diff --git a/src/yuzu/util/overlay_dialog.h b/src/yuzu/util/overlay_dialog.h
index d8a140ff3..014c943c7 100644
--- a/src/yuzu/util/overlay_dialog.h
+++ b/src/yuzu/util/overlay_dialog.h
@@ -4,7 +4,6 @@
#pragma once
-#include <array>
#include <atomic>
#include <memory>
#include <thread>
diff --git a/src/yuzu_cmd/CMakeLists.txt b/src/yuzu_cmd/CMakeLists.txt
index 74fc24972..c8901f2df 100644
--- a/src/yuzu_cmd/CMakeLists.txt
+++ b/src/yuzu_cmd/CMakeLists.txt
@@ -45,7 +45,7 @@ if (YUZU_USE_EXTERNAL_SDL2)
endif()
if(UNIX AND NOT APPLE)
- install(TARGETS yuzu-cmd RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}/bin")
+ install(TARGETS yuzu-cmd)
endif()
if (MSVC)
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp
index b74411c84..fc16f0f0c 100644
--- a/src/yuzu_cmd/config.cpp
+++ b/src/yuzu_cmd/config.cpp
@@ -3,6 +3,7 @@
// Refer to the license.txt file included.
#include <memory>
+#include <optional>
#include <sstream>
// Ignore -Wimplicit-fallthrough due to https://github.com/libsdl-org/SDL/issues/4307
@@ -20,7 +21,6 @@
#include "common/fs/fs.h"
#include "common/fs/path_util.h"
#include "common/logging/log.h"
-#include "common/param_package.h"
#include "common/settings.h"
#include "core/hle/service/acc/profile_manager.h"
#include "input_common/main.h"
@@ -29,11 +29,12 @@
namespace FS = Common::FS;
-Config::Config() {
- // TODO: Don't hardcode the path; let the frontend decide where to put the config files.
- sdl2_config_loc = FS::GetYuzuPath(FS::YuzuPath::ConfigDir) / "sdl2-config.ini";
- sdl2_config = std::make_unique<INIReader>(FS::PathToUTF8String(sdl2_config_loc));
+const std::filesystem::path default_config_path =
+ FS::GetYuzuPath(FS::YuzuPath::ConfigDir) / "sdl2-config.ini";
+Config::Config(std::optional<std::filesystem::path> config_path)
+ : sdl2_config_loc{config_path.value_or(default_config_path)},
+ sdl2_config{std::make_unique<INIReader>(FS::PathToUTF8String(sdl2_config_loc))} {
Reload();
}
diff --git a/src/yuzu_cmd/config.h b/src/yuzu_cmd/config.h
index 1ee932be2..f61ba23ec 100644
--- a/src/yuzu_cmd/config.h
+++ b/src/yuzu_cmd/config.h
@@ -6,6 +6,7 @@
#include <filesystem>
#include <memory>
+#include <optional>
#include <string>
#include "common/settings.h"
@@ -13,14 +14,14 @@
class INIReader;
class Config {
- std::unique_ptr<INIReader> sdl2_config;
std::filesystem::path sdl2_config_loc;
+ std::unique_ptr<INIReader> sdl2_config;
bool LoadINI(const std::string& default_contents = "", bool retry = true);
void ReadValues();
public:
- Config();
+ explicit Config(std::optional<std::filesystem::path> config_path);
~Config();
void Reload();
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h
index 3ac1440c9..f34d6b728 100644
--- a/src/yuzu_cmd/default_ini.h
+++ b/src/yuzu_cmd/default_ini.h
@@ -124,7 +124,11 @@ keyboard_enabled =
[Core]
# Whether to use multi-core for CPU emulation
# 0: Disabled, 1 (default): Enabled
-use_multi_core=
+use_multi_core =
+
+# Enable extended guest system memory layout (6GB DRAM)
+# 0 (default): Disabled, 1: Enabled
+use_extended_memory_layout =
[Cpu]
# Adjusts various optimizations.
@@ -338,12 +342,6 @@ fps_cap =
# null: No audio output
output_engine =
-# Whether or not to enable the audio-stretching post-processing effect.
-# This effect adjusts audio speed to match emulation speed and helps prevent audio stutter,
-# at the cost of increasing audio latency.
-# 0: No, 1 (default): Yes
-enable_audio_stretching =
-
# Which audio device to use.
# auto (default): Auto-select
output_device =
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2.h b/src/yuzu_cmd/emu_window/emu_window_sdl2.h
index 0af002693..9746585f5 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2.h
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2.h
@@ -4,7 +4,6 @@
#pragma once
-#include <memory>
#include <utility>
#include "core/frontend/emu_window.h"
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
index 70db865ec..bbe90eb77 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_gl.cpp
@@ -11,7 +11,6 @@
#include <fmt/format.h>
#include <glad/glad.h>
-#include "common/assert.h"
#include "common/logging/log.h"
#include "common/scm_rev.h"
#include "common/settings.h"
diff --git a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
index de40b76bf..49cd9213c 100644
--- a/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
+++ b/src/yuzu_cmd/emu_window/emu_window_sdl2_vk.cpp
@@ -8,10 +8,8 @@
#include <fmt/format.h>
-#include "common/assert.h"
#include "common/logging/log.h"
#include "common/scm_rev.h"
-#include "common/settings.h"
#include "video_core/renderer_vulkan/renderer_vulkan.h"
#include "yuzu_cmd/emu_window/emu_window_sdl2_vk.h"
diff --git a/src/yuzu_cmd/yuzu.cpp b/src/yuzu_cmd/yuzu.cpp
index b44ea0cc4..ab12dd15d 100644
--- a/src/yuzu_cmd/yuzu.cpp
+++ b/src/yuzu_cmd/yuzu.cpp
@@ -11,11 +11,7 @@
#include <fmt/ostream.h>
#include "common/detached_tasks.h"
-#include "common/fs/fs.h"
-#include "common/fs/fs_paths.h"
-#include "common/fs/path_util.h"
#include "common/logging/backend.h"
-#include "common/logging/filter.h"
#include "common/logging/log.h"
#include "common/microprofile.h"
#include "common/nvidia_flags.h"
@@ -66,7 +62,8 @@ static void PrintHelp(const char* argv0) {
"-f, --fullscreen Start in fullscreen mode\n"
"-h, --help Display this help and exit\n"
"-v, --version Output version information and exit\n"
- "-p, --program Pass following string as arguments to executable\n";
+ "-p, --program Pass following string as arguments to executable\n"
+ "-c, --config Load the specified configuration file\n";
}
static void PrintVersion() {
@@ -77,8 +74,8 @@ static void PrintVersion() {
int main(int argc, char** argv) {
Common::Log::Initialize();
Common::Log::SetColorConsoleBackendEnabled(true);
+ Common::Log::Start();
Common::DetachedTasks detached_tasks;
- Config config;
int option_index = 0;
#ifdef _WIN32
@@ -91,19 +88,24 @@ int main(int argc, char** argv) {
}
#endif
std::string filepath;
+ std::optional<std::string> config_path;
+ std::string program_args;
bool fullscreen = false;
static struct option long_options[] = {
+ // clang-format off
{"fullscreen", no_argument, 0, 'f'},
{"help", no_argument, 0, 'h'},
{"version", no_argument, 0, 'v'},
{"program", optional_argument, 0, 'p'},
+ {"config", required_argument, 0, 'c'},
{0, 0, 0, 0},
+ // clang-format on
};
while (optind < argc) {
- int arg = getopt_long(argc, argv, "g:fhvp::", long_options, &option_index);
+ int arg = getopt_long(argc, argv, "g:fhvp::c:", long_options, &option_index);
if (arg != -1) {
switch (static_cast<char>(arg)) {
case 'f':
@@ -117,9 +119,12 @@ int main(int argc, char** argv) {
PrintVersion();
return 0;
case 'p':
- Settings::values.program_args = argv[optind];
+ program_args = argv[optind];
++optind;
break;
+ case 'c':
+ config_path = optarg;
+ break;
}
} else {
#ifdef _WIN32
@@ -131,6 +136,12 @@ int main(int argc, char** argv) {
}
}
+ Config config{config_path};
+
+ if (!program_args.empty()) {
+ Settings::values.program_args = program_args;
+ }
+
#ifdef _WIN32
LocalFree(argv_w);
#endif